に最終更新
INITCAP
説明
INITCAP 関数は、文字列内の各単語の先頭文字を大文字に、残りの文字を小文字に変換します。単語とは、英数字以外の文字で区切られた英数字の連続です。この関数は、名前やタイトルなど、大文字と小文字を標準的な形式に整える場合に適しています。
構文
INITCAP(<str>)
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | 大文字と小文字を変換する文字列。型: VARCHAR |
戻り値
変換後の文字列を VARCHAR 型で返します。
変換規則:
- 各単語の先頭の文字を大文字に変換します
- 単語内の残りの文字を小文字に変換します
- 単語は英数字以外の文字(スペース、句読点、記号など)で区切られます
- 数字は大文字と小文字の変換対象になりません
- Unicode 文字の大文字と小文字の変換に対応しています
特殊なケース:
- 引数が NULL の場合は NULL を返します
- 文字列が空の場合は空文字列を返します
- 英数字以外の文字が連続する場合は、単一の区切りとして扱います
- 文字列の先頭にある英字は大文字に変換します
例
- 単語の先頭文字を大文字にする基本的な例
SELECT INITCAP('hello world');
+------------------------+
| INITCAP('hello world') |
+------------------------+
| Hello World |
+------------------------+
- 大文字と小文字が混在する文字列の変換
SELECT INITCAP('hELLo WoRLD');
+------------------------+
| INITCAP('hELLo WoRLD') |
+------------------------+
| Hello World |
+------------------------+
- NULL 値の処理
SELECT INITCAP(NULL);
+---------------+
| INITCAP(NULL) |
+---------------+
| NULL |
+---------------+
- 数字と記号を含む文字列
SELECT INITCAP('hello hello.,HELLO123HELlo');
+---------------------------------------+
| INITCAP('hello hello.,HELLO123HELlo') |
+---------------------------------------+
| Hello Hello.,Hello123hello |
+---------------------------------------+
- 空文字列
SELECT INITCAP('');
+-------------+
| INITCAP('') |
+-------------+
| |
+-------------+
- 英数字以外の区切り文字が複数ある場合
SELECT INITCAP('word1@word2#word3$word4');
+------------------------------------+
| INITCAP('word1@word2#word3$word4') |
+------------------------------------+
| Word1@Word2#Word3$Word4 |
+------------------------------------+
- UTF-8 のマルチバイト文字を含む単語
SELECT INITCAP('ṭṛì ḍḍumai hello');
+--------------------------------------+
| INITCAP('ṭṛì ḍḍumai hello') |
+--------------------------------------+
| Ṭṛì Ḍḍumai Hello |
+--------------------------------------+
- 一般的な名前の大文字と小文字の変換
SELECT INITCAP('john doe'), INITCAP('MARY JANE');
+---------------------+----------------------+
| INITCAP('john doe') | INITCAP('MARY JANE') |
+---------------------+----------------------+
| John Doe | Mary Jane |
+---------------------+----------------------+
- 大文字と小文字が混在する文
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 |
+--------------------------------+---------------------------------------+
- 連続するスペースと隣接する句読点
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? |
+---------------------------------+---------------------------------------+