に最終更新
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 |
+---------------------------------------+