跳到主要内容

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