Последнее обновление
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? |
+---------------------------------+---------------------------------------+