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('');
+-------------+
| INITCAP('') |
+-------------+
| |
+-------------+
- 包含数字和符号的字符串
SELECT INITCAP('hello hello.,HELLO123HELlo');
+---------------------------------------+
| INITCAP('hello hello.,HELLO123HELlo') |
+---------------------------------------+
| Hello Hello.,Hello123hello |
+---------------------------------------+
- 多种分隔符
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? |
+----------------------------------+---------------------------------------+