Строковые функции и операторы#
Строковые операторы#
Оператор || выполняет конкатенацию.
Оператор LIKE можно использовать для сопоставления с шаблоном; он описан в
Сравнение по шаблону: LIKE.
Строковые функции#
Note
Эти функции предполагают, что входные строки содержат корректные Unicode
кодовые точки в кодировке UTF-8. Явные проверки корректности UTF-8 отсутствуют,
и функции могут возвращать некорректные результаты для некорректного UTF-8.
Некорректные данные UTF-8 можно исправить с помощью from_utf8().
Кроме того, функции работают с Unicode кодовыми точками, а не с видимыми пользователю символами (или графемными кластерами). В некоторых языках несколько кодовых точек объединяются в один воспринимаемый пользователем символ - базовую единицу письменности языка, но функции будут обрабатывать каждую кодовую точку как отдельную единицу.
Функции lower() и upper() не выполняют
локалезависимые, контекстно-зависимые или one-to-many преобразования, требуемые
для некоторых языков. В частности, это даст некорректные результаты для
литовского, турецкого и азербайджанского языков.
- chr(n) varchar#
Возвращает Unicode кодовую точку
nкак строку из одного символа.
- codepoint(string) integer#
Возвращает Unicode кодовую точку единственного символа в
string.
- concat(string1, ..., stringN) varchar#
Возвращает конкатенацию
string1,string2,...,stringN. Эта функция предоставляет ту же функциональность, что и SQL-стандартный оператор конкатенации (||).
- concat_ws(separator, string1, ..., stringN) varchar#
Возвращает конкатенацию
string1,string2,...,stringN, используяseparatorдля объединения значений. Еслиseparatorравен null, возвращаемое значение равно null. Любые значения null, переданные в аргументах после separator, пропускаются.
- 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, то есть минимальное количество правок одного символа (вставок, удалений или замен), необходимых для преобразованияstring1вstring2.
- lower(string) varchar#
Преобразует
stringв нижний регистр.
- lpad(string, size, padstring) varchar#
Дополняет
stringслева доsizeсимволов с помощьюpadstring. Еслиsizeменьше длиныstring, результат усекается доsizeсимволов.sizeне должен быть отрицательным, аpadstringне должен быть пустым.
- ltrim(string) varchar#
Удаляет начальные пробелы из
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.Note
Эта 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#
Удаляет конечные пробелы из
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и возвращает map.entryDelimiterразбиваетstringна пары ключ-значение.keyValueDelimiterразбивает каждую пару на ключ и значение.
- split_to_multimap(string, entryDelimiter, keyValueDelimiter)#
Разбивает
stringпоentryDelimiterиkeyValueDelimiterи возвращает map, содержащий массив значений для каждого уникального ключа.entryDelimiterразбиваетstringна пары ключ-значение.keyValueDelimiterразбивает каждую пару на ключ и значение. Значения для каждого ключа будут в том же порядке, в котором они встречались вstring.
- strpos(string, substring) bigint#
Возвращает начальную позицию первого вхождения
substringвstring. Позиции начинаются с1. Если не найдено, возвращается0.
- strpos(string, substring, instance) bigint
Возвращает позицию N-го
instancesubstringвstring. Еслиinstanceявляется отрицательным числом, поиск начнется с концаstring. Позиции начинаются с1. Если не найдено, возвращается0.
- starts_with(string, substring) boolean#
Проверяет, является ли
substringпрефиксомstring.
- substr(string, start) varchar#
Это псевдоним для
substring().
- substring(string, start) varchar#
Возвращает остаток
stringначиная с позицииstart. Позиции начинаются с1. Отрицательная начальная позиция интерпретируется как смещение относительно конца строки.
- substr(string, start, length) varchar
Это псевдоним для
substring().
- substring(string, start, length) varchar
Возвращает подстроку из
stringдлинойlength, начиная с позицииstart. Позиции начинаются с1. Отрицательная начальная позиция интерпретируется как смещение относительно конца строки.
- translate(source, from, to) varchar#
Возвращает строку
source, преобразованную заменой символов, найденных в строкеfrom, соответствующими символами из строкиto. Если строкаfromсодержит дубликаты, используется только первое вхождение. Если символsourceотсутствует в строкеfrom, символsourceкопируется без преобразования. Если индекс совпавшего символа в строкеfromвыходит за пределы длины строкиto, символsourceбудет опущен в результирующей строке.Ниже приведены примеры, иллюстрирующие функцию translate:
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
Удаляет начальные и конечные пробелы из
string.
- trim([ [ specification ] [ string ] FROM ] source ) varchar#
Удаляет любые начальные и/или конечные символы в соответствии с заданием, вплоть до и включая
string, изsource: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должен быть одним из следующих ключевых слов:Form
Description
NFDCanonical Decomposition
NFCCanonical Decomposition, followed by Canonical Composition
NFKDCompatibility Decomposition
NFKCCompatibility Decomposition, followed by Canonical Composition
Note
Эта SQL-стандартная функция имеет специальный синтаксис и требует указывать
formкак ключевое слово, а не как строку.
- to_utf8(string) varbinary#
Кодирует
stringв представление UTF-8 varbinary.
- from_utf8(binary) varchar#
Декодирует строку в кодировке UTF-8 из
binary. Некорректные UTF-8 последовательности заменяются на Unicode символ заменыU+FFFD.
- from_utf8(binary, replace) varchar
Декодирует строку в кодировке UTF-8 из
binary. Некорректные UTF-8 последовательности заменяются наreplace. Строка заменыreplaceдолжна быть либо одним символом, либо пустой (в этом случае некорректные символы удаляются).