メインコンテンツまでスキップ
に最終更新

INITCAP

説明​

INITCAP 関数は、文字列内の各単語の先頭文字を大文字に、残りの文字を小文字に変換します。単語とは、英数字以外の文字で区切られた英数字の連続です。この関数は、名前やタイトルなど、大文字と小文字を標準的な形式に整える場合に適しています。

構文​

INITCAP(<str>)

パラメータ​

パラメータ説明
<str>大文字と小文字を変換する文字列。型: VARCHAR

戻り値​

変換後の文字列を VARCHAR 型で返します。

変換規則:

  • 各単語の先頭の文字を大文字に変換します
  • 単語内の残りの文字を小文字に変換します
  • 単語は英数字以外の文字(スペース、句読点、記号など)で区切られます
  • 数字は大文字と小文字の変換対象になりません
  • Unicode 文字の大文字と小文字の変換に対応しています

特殊なケース:

  • 引数が NULL の場合は NULL を返します
  • 文字列が空の場合は空文字列を返します
  • 英数字以外の文字が連続する場合は、単一の区切りとして扱います
  • 文字列の先頭にある英字は大文字に変換します

例​

  1. 単語の先頭文字を大文字にする基本的な例
SELECT INITCAP('hello world');
+------------------------+
| INITCAP('hello world') |
+------------------------+
| Hello World |
+------------------------+
  1. 大文字と小文字が混在する文字列の変換
SELECT INITCAP('hELLo WoRLD');
+------------------------+
| INITCAP('hELLo WoRLD') |
+------------------------+
| Hello World |
+------------------------+
  1. NULL 値の処理
SELECT INITCAP(NULL);
+---------------+
| INITCAP(NULL) |
+---------------+
| NULL |
+---------------+
  1. 数字と記号を含む文字列
SELECT INITCAP('hello hello.,HELLO123HELlo');
+---------------------------------------+
| INITCAP('hello hello.,HELLO123HELlo') |
+---------------------------------------+
| Hello Hello.,Hello123hello |
+---------------------------------------+
  1. 空文字列
SELECT INITCAP('');
+-------------+
| INITCAP('') |
+-------------+
| |
+-------------+
  1. 英数字以外の区切り文字が複数ある場合
SELECT INITCAP('word1@word2#word3$word4');
+------------------------------------+
| INITCAP('word1@word2#word3$word4') |
+------------------------------------+
| Word1@Word2#Word3$Word4 |
+------------------------------------+
  1. UTF-8 のマルチバイト文字を含む単語
SELECT INITCAP('ṭṛì ḍḍumai hello');
+--------------------------------------+
| INITCAP('ṭṛì ḍḍumai hello') |
+--------------------------------------+
| Ṭṛì Ḍḍumai Hello |
+--------------------------------------+
  1. 一般的な名前の大文字と小文字の変換
SELECT INITCAP('john doe'), INITCAP('MARY JANE');
+---------------------+----------------------+
| INITCAP('john doe') | INITCAP('MARY JANE') |
+---------------------+----------------------+
| John Doe | Mary Jane |
+---------------------+----------------------+
  1. 大文字と小文字が混在する文
SELECT INITCAP('the quick brown fox'), INITCAP('DATABASE management SYSTEM');
+--------------------------------+---------------------------------------+
| INITCAP('the quick brown fox') | INITCAP('DATABASE management SYSTEM') |
+--------------------------------+---------------------------------------+
| The Quick Brown Fox | Database Management System |
+--------------------------------+---------------------------------------+
  1. 連続するスペースと隣接する句読点
SELECT INITCAP('word1   word2--word3'), INITCAP('hello, world! how are you?');
+---------------------------------+---------------------------------------+
| INITCAP('word1 word2--word3') | INITCAP('hello, world! how are you?') |
+---------------------------------+---------------------------------------+
| Word1 Word2--Word3 | Hello, World! How Are You? |
+---------------------------------+---------------------------------------+