Функции для работы со строками#
Строковые операторы#
Оператор || выполняет конкатенацию. Если один из аргументов NULL,
результат также будет NULL.
Оператор LIKE может использоваться для сопоставления с паттерном и
описан в разделе LIKE.
Строковые функции#
Примечание
Строковые аргументы строковых функций должны содержать только допустимые
кодовые точки (code point) Unicode в кодировке UTF-8. CedrusData не
осуществляет явных проверок корректности UTF-8. Функции могут возвращать
некорректные результаты для недопустимых в UTF-8 символов. Неверные
данные UTF-8 можно исправить с помощью from_utf8().
Функции работают с кодовыми точками Unicode, а не с символами, видимыми пользователем. Некоторые языки объединяют несколько кодовых точек в один воспринимаемый пользователем символ.
Функции lower() и upper() не используют локали или иной
контекст для преобразования строк. Это может возвращать некорректные
результаты для некоторых языков, например, Литовского, Турецкого и
Азербайджанского.
- chr(n) varchar#
Возвращает кодовую точку Unicode
nкак односимвольную строку.
- codepoint(string) integer#
Возвращает кодовую точку Unicode единственного символа
string.
- concat(string1, ..., stringN) varchar#
Конкатенирует аргументы
string1,...,stringN. Функция аналогична оператору конкатенации||.
- concat_ws(string0, string1, ..., stringN) varchar#
Конкатенирует строки
string1,string2,...,stringN, используяstring0в качестве разделителя. Еслиstring0имеет значениеNULL, возвращаемое значение также будетNULL.NULLзначения в аргументах после разделителя будут проигнорированы.
- concat_ws(string0, array(varchar)) varchar
Конкатенирует элементы массива, используя
string0в качестве разделителя. Еслиstring0имеет значениеNULL, возвращаемое значение также будетNULL.NULLзначения в элементах массива будут проигнорированы.
- format(format, args...) varchar
См.
format().
- hamming_distance(string1, string2) bigint#
Возвращает количество позиций, в которых соответствующие символы
string1иstring2различаются (расстояние Хэмминга). Обе строки должны иметь одинаковую длину.
- length(string) bigint#
Возвращает длину
stringв символах.
- levenshtein_distance(string1, string2) bigint#
Возвращает минимальное количество односимвольных изменений (вставок, удалений или замен), необходимых для преобразования
string1вstring2(расстояние редактирования Левенштейна).
- lower(string) varchar#
Преобразует
stringв нижний регистр.
- lpad(string, size, padstring) varchar#
Дополняет
stringслева доsizeсимволов с помощьюpadstring. Еслиsizeменьше длиныstring, результат будет усечен доsizeсимволов.sizeне должен быть отрицательным, аpadstringне должен быть пустым.
- ltrim(string) varchar#
Удаляет пробелы (whitespaces) из
stringслева.
- luhn_check(string) boolean#
Проверяет, составлена ли строка цифр
stringв соответствии с алгоритмом Луна.Данную функцию, известную как
modulo 10илиmod 10, обычно используют для определения опечаток в номерах кредитных карт.Действительный идентификационный номер:
SELECT luhn_check('79927398713'); -- true
Некорректный идентификационный номер:
SELECT luhn_check('79927398714'); -- false
- position(substring IN string) bigint#
Возвращает позицию первого вхождения
substringвstring. Позиции начинаются с1. Если вхождение не найдено, функция возвращает0.Примечание
Эта стандартная функция SQL имеет специальный синтаксис и использует ключевое слово
INдля разделения аргументов. См. такжеstrpos().
- replace(string, search) varchar#
Удаляет все вхождения
searchизstring.
- replace(string, search, replace) varchar
Заменяет все вхождения
searchнаreplaceвstring.
- reverse(string) varchar#
Возвращает
stringс символами в обратном порядке.
- rpad(string, size, padstring) varchar#
Дополняет
stringсправа доsizeсимволов с помощьюpadstring. Еслиsizeменьше длиныstring, результат будет усечен доsizeсимволов.sizeне должен быть отрицательным, аpadstringне должен быть пустым.
- rtrim(string) varchar#
Удаляет пробелы (whitespaces) из
stringсправа.
- soundex(char) string#
soundexвозвращает фонетическое представлениеchar. Данную функцию обычно используют для сравнения звучания строк при их произнесении:SELECT name FROM nation WHERE SOUNDEX(name) = SOUNDEX('CHYNA'); name | -------+---- CHINA | (1 row)
- split(string, delimiter)#
Разбивает
stringпоdelimiterи возвращает массив значений.
- split(string, delimiter, limit)
Разбивает
stringпоdelimiterи возвращает массив значений, размер которого не превышающегоlimit. Последний элемент массива всегда содержит все, что осталось вstring.limitдолжен быть положительным числом.
- split_part(string, delimiter, index) varchar#
Разбивает
stringпоdelimiterи возвращает элемент результирующего массива на позицииindex. Индексы элементов начинаются с1. Если значение индекса превышает количество элементов, функция возвращаетNULL.
- split_to_map(string, entryDelimiter, keyValueDelimiter) map<varchar, varchar>#
Разбивает
stringс помощьюentryDelimiterиkeyValueDelimiterи возвращает словарь.entryDelimiterразбиваетstringна пары ключ-значение.keyValueDelimiterразбивает каждую пару на ключ и значение.
- split_to_multimap(string, entryDelimiter, keyValueDelimiter)#
Разбивает
stringс помощьюentryDelimiterиkeyValueDelimiterи возвращает словарь, содержащий массив значений для каждого уникального ключа.entryDelimiterразбиваетstringна пары ключ-значение.keyValueDelimiterразбивает каждую пару на ключ и значение. Значения для каждого ключа будут в том же порядке, в котором они указаны вstring.
- strpos(string, substring) bigint#
Возвращает начальную позицию первого вхождения
substringвstring. Позиции начинаются с1. Если вхождений не найдено, функция возвращает0.
- strpos(string, substring, instance) bigint
Возвращает позицию N-го вхождения (
instance)substringвstring. Еслиinstanceявляется отрицательным числом, поиск начнется с концаstring. Позиции начинаются с1. Если вхождений не найдено, функция возвращает0.
- starts_with(string, substring) boolean#
Проверяет, является ли
substringпрефиксомstring.
- substr(string, start) varchar#
Псевдоним для
substring().
- substring(string, start) varchar#
Возвращает часть
string, начиная с позицииstart. Позиции начинаются с1. Отрицательное значениеstartинтерпретируется как положение относительно конца строки.
- substr(string, start, length) varchar
Псевдоним для
substring().
- substring(string, start, length) varchar
Возвращает часть
stringдлиныlength, начиная с позицииstart. Позиции начинаются с1. Отрицательное значениеstartинтерпретируется как положение относительно конца строки.
- translate(source, from, to) varchar#
Возвращает строку
source, преобразованную путем замены символов, найденных в строкеfrom, соответствующими символами в строкеto. Если строкаfromсодержит одинаковые символы, для трансляции будет использован только первый из них. Если символ изsourceотсутствует в строкеfrom, он будет добавлен в результат без трансляции. Если индекс соответствующего символа в строкеfromпревышает длину строкиto, то соответствующий символsourceбудет опущен из результирующей строки.Примеры:
SELECT translate('abcd', '', ''); -- 'abcd' SELECT translate('abcd', 'a', 'z'); -- 'zbcd' SELECT translate('abcda', 'a', 'z'); -- 'zbcdz' SELECT translate('Palhoça', 'ç','c'); -- 'Palhoca' SELECT translate('abcd', 'b', U&'\+01F600'); -- a😀cd SELECT translate('abcd', 'a', ''); -- 'bcd' SELECT translate('abcd', 'a', 'zy'); -- 'zbcd' SELECT translate('abcd', 'ac', 'z'); -- 'zbd' SELECT translate('abcd', 'aac', 'zq'); -- 'zbd'
- trim(string) varchar
Удаляет пробелы (whitespaces) из
stringслева и справа.
- trim([ [ specification ] [ string ] FROM ] source ) varchar#
Удаляет все символы
stringизsourceслева и/или справа в соответствии соspecification. Еслиspecificationне указан, будет использовано значение по умолчаниюBOTH.SELECT trim('!' FROM '!foo!'); -- 'foo' SELECT trim(LEADING FROM ' abcd'); -- 'abcd' SELECT trim(BOTH '$' FROM '$var$'); -- 'var' SELECT trim(TRAILING 'ER' FROM upper('worker')); -- 'WORK'
- upper(string) varchar#
Преобразует
stringв верхний регистр.
- word_stem(word) varchar#
Возвращает корень слова
wordв Английском языке.
- word_stem(word, lang) varchar
Возвращает корень слова
word, используя языкlang.
Функции Unicode#
- normalize(string) varchar#
Преобразует
string, используя форму нормализацииNFC.
- normalize(string, form) varchar
Преобразует
string, используя указанную форму нормализации.formдолжно быть одним из:Форма
Описание
NFDКаноническая декомпозиция
NFCКаноническая декомпозиция за которой следует каноническая композиция
NFKDДекомпозиция совместимости
NFKCДекомпозиция совместимости за которой следует каноническая композиция
Примечание
Эта стандартная функция SQL имеет специальный синтаксис и требует указания
formкак ключевого слова, а не как строки.
- to_utf8(string) varbinary#
Кодирует
stringвvarbinaryпредставление UTF-8.
- from_utf8(binary) varchar#
Декодирует строку в кодировке UTF-8 из
binary. Недопустимые последовательности UTF-8 будут заменены символом замены UnicodeU+FFFD.
- from_utf8(binary, replace) varchar
Декодирует строку в кодировке UTF-8 из
binary. Недопустимые последовательности UTF-8 будут заменены строкойreplace. Аргументreplaceдолжен состоять из одного символа, либо быть пустым (в этом случае недопустимые символы удаляются).