Функции для работы со строками
Функции поиска и замены в строках описаны отдельно.
Приведённая ниже документация сгенерирована из системной таблицы system.functions.
CRC32
Добавлена в версии: v20.1
Вычисляет контрольную сумму CRC32 для строки с использованием полинома CRC-32-IEEE 802.3 и начального значения 0xffffffff (реализация zlib).
Синтаксис
Аргументы
s— строка, для которой вычисляется CRC32.String
Возвращаемое значение
Возвращает контрольную сумму CRC32 для строки. UInt32
Примеры
Пример использования
CRC32IEEE
Введена в версии: v20.1
Вычисляет контрольную сумму CRC32 для строки с использованием полинома CRC-32-IEEE 802.3.
Синтаксис
Аргументы
s— строка, для которой вычисляется CRC32.String
Возвращаемое значение
Возвращает контрольную сумму CRC32 строки. UInt32
Примеры
Пример использования
CRC64
Введена в версии: v20.1
Вычисляет контрольную сумму CRC64 для строки с использованием полинома CRC-64-ECMA.
Синтаксис
Аргументы
s— Строка, для которой необходимо вычислить CRC64.String
Возвращаемое значение
Возвращает контрольную сумму CRC64 строки. UInt64
Примеры
Пример использования
appendTrailingCharIfAbsent
Введена в: v1.1
Добавляет символ c к строке s, если строка s непуста и не оканчивается символом c.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает строку s с добавленным символом c, если s не оканчивается на c. String
Примеры
Пример использования
ascii
Введена в: v22.11
Возвращает кодовую точку ASCII первого символа строки s в виде Int32.
Синтаксис
Аргументы
s— строковый параметр.String
Возвращаемое значение
Возвращает кодовую точку ASCII первого символа. Если s пустая, результат — 0. Если первый символ не является символом ASCII или не входит в диапазон Latin-1 Supplement в UTF-16, результат неопределён. Int32
Примеры
Пример использования
base32Decode
Добавлена в: v25.6
Декодирует строку в формате Base32 (RFC 4648). Если строка не является корректной Base32-кодировкой, генерируется исключение.
Синтаксис
Аргументы
encoded— строковый столбец или константа.String
Возвращаемое значение
Возвращает строку, содержащую декодированное значение аргумента. String
Примеры
Пример использования
base32Encode
Появилась в версии: v25.6
Кодирует строку с использованием Base32.
Синтаксис
Аргументы
plaintext— Открытый текст для кодирования.String
Возвращаемое значение
Возвращает строку, содержащую закодированное значение аргумента. String или FixedString
Примеры
Пример использования
base58Decode
Введена в версии: v22.7
Декодирует строку в формате Base58. Если строка не является корректной строкой в кодировке Base58, генерируется исключение.
Синтаксис
Аргументы
encoded— строковый столбец (String) или константа для декодирования.String
Возвращаемое значение
Возвращает строку с декодированным значением аргумента. String
Примеры
Пример использования
base58Encode
Добавлена в версии: v22.7
Кодирует строку с использованием кодирования в формате Base58.
Синтаксис
Аргументы
plaintext— Исходный текст для кодирования.String
Возвращаемое значение
Возвращает строку, содержащую закодированное значение аргумента. String
Примеры
Пример использования
base64Decode
Функция появилась в версии v18.16.
Декодирует строку из представления Base64 в соответствии с RFC 4648. В случае ошибки выбрасывает исключение.
Синтаксис
Псевдонимы: FROM_BASE64
Аргументы
encoded— строковый столбец или константа для декодирования. Если строка не является корректной строкой в кодировке Base64, выбрасывается исключение.String
Возвращаемое значение
Возвращает декодированную строку. String
Примеры
Пример использования
base64Encode
Введена в версии: v18.16
Кодирует строку в формат Base64 в соответствии с RFC 4648.
Синтаксис
Псевдонимы: TO_BASE64
Аргументы
plaintext— текст, столбец или константа для декодирования.String
Возвращаемое значение
Возвращает строку, содержащую закодированное значение аргумента. String
Примеры
Пример использования
base64URLDecode
Добавлена в: v24.6
Декодирует строку из представления Base64, используя URL-безопасный алфавит в соответствии с RFC 4648. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
encoded— строковый столбец или константа для кодирования. Если строка не является корректной строкой в кодировке Base64, генерируется исключение.String
Возвращаемое значение
Возвращает строку, содержащую декодированное значение аргумента. String
Примеры
Пример использования
base64URLEncode
Добавлена в версии: v18.16
Кодирует строку в представление Base64 (RFC 4648) с URL‑безопасным алфавитом.
Синтаксис
Аргументы
plaintext— Столбец или константа с открытым текстом для кодирования.String
Возвращаемое значение
Возвращает строку, содержащую закодированное значение аргумента. String
Примеры
Пример использования
basename
Добавлено в версии: v20.1
Извлекает часть строки, расположенную после её последней прямой или обратной косой черты. Эта функция часто используется для извлечения имени файла из пути.
Синтаксис
Аргументы
expr— строковое выражение. Обратные слэши необходимо экранировать.String
Возвращаемое значение
Возвращает часть входной строки после её последнего прямого или обратного слэша. Если входная строка оканчивается прямым или обратным слэшем, функция возвращает пустую строку. Возвращает исходную строку, если в ней нет ни прямых, ни обратных слэшей. String
Примеры
Извлечение имени файла из пути в Unix
Извлечь имя файла из пути в Windows
Строка без символов‑разделителей пути
byteHammingDistance
Добавлено в версии v23.9
Вычисляет расстояние Хэмминга между двумя байтовыми строками.
Синтаксис
Псевдонимы: mismatches
Аргументы
Возвращаемое значение
Возвращает расстояние Хэмминга между двумя строками. UInt64
Примеры
Пример использования
compareSubstrings
Впервые появилось в: v25.2
Сравнивает две строки в лексикографическом порядке.
Синтаксис
Аргументы
s1— первая строка для сравнения.Strings2— вторая строка для сравнения.Strings1_offset— позиция (отсчитываемая с нуля) вs1, с которой начинается сравнение.UInt*s2_offset— позиция (отсчитываемая с нуля) вs2, с которой начинается сравнение.UInt*num_bytes— максимальное количество байт, сравниваемых в обеих строках. Еслиs1_offset(илиs2_offset) +num_bytesвыходит за конец входной строки,num_bytesбудет соответствующим образом уменьшено.UInt*
Возвращаемое значение
Возвращает:
-1, еслиs1[s1_offset:s1_offset+num_bytes] <s2[s2_offset:s2_offset+num_bytes].0, еслиs1[s1_offset:s1_offset+num_bytes] =s2[s2_offset:s2_offset+num_bytes].1, еслиs1[s1_offset:s1_offset+num_bytes] >s2[s2_offset:s2_offset+num_bytes].Int8
Примеры
Пример использования
concat
Введена в версии: v1.1
Объединяет переданные аргументы.
Аргументы, которые не имеют типов String или FixedString, преобразуются в строки с использованием их сериализации по умолчанию.
Поскольку это снижает производительность, не рекомендуется использовать аргументы с типами, отличными от String/FixedString.
Синтаксис
Аргументы
s1, s2, ...— Любое количество значений произвольного типа.Any
Возвращаемое значение
Возвращает строку (String), созданную путём конкатенации аргументов. Если хотя бы один из аргументов равен NULL, функция возвращает NULL. Если аргументы отсутствуют, возвращается пустая строка. Nullable(String)
Примеры
Конкатенация строк
Конкатенация чисел
concatAssumeInjective
Введена в: v1.1
Аналог функции concat, но предполагает, что concat(s1, s2, ...) → sn является инъективной,
т. е. возвращает разные результаты для разных аргументов.
Может использоваться для оптимизации GROUP BY.
Синтаксис
Аргументы
s1, s2, ...— Произвольное количество значений любого типа.StringилиFixedString
Возвращаемое значение
Возвращает строку, созданную объединением (конкатенацией) аргументов. Если хотя бы одно из значений аргументов равно NULL, функция возвращает NULL. Если не передано ни одного аргумента, возвращается пустая строка. String
Примеры
Оптимизация GROUP BY
concatWithSeparator
Добавлена в версии: v22.12
Объединяет переданные строки, разделяя их указанным разделителем.
Синтаксис
Псевдонимы: concat_ws
Аргументы
sep— разделитель.const Stringилиconst FixedStringexp1, exp2, ...— выражения, которые будут объединены. Аргументы типов, отличных отStringилиFixedString, приводятся к строкам с использованием их сериализации по умолчанию. Поскольку это снижает производительность, не рекомендуется использовать аргументы не типа String/FixedString.Any
Возвращаемое значение
Возвращает строку, полученную конкатенацией аргументов. Если любое из значений аргументов равно NULL, функция возвращает NULL. String
Примеры
Пример использования
concatWithSeparatorAssumeInjective
Введена в версии: v22.12
То же, что concatWithSeparator, но предполагается, что concatWithSeparator(sep[,exp1, exp2, ... ]) → result является инъективной.
Функция считается инъективной, если она возвращает различные результаты для различных аргументов.
Может использоваться для оптимизации GROUP BY.
Синтаксис
Аргументы
sep— разделитель.const Stringилиconst FixedStringexp1, exp2, ...— выражения для конкатенации. Аргументы, которые не имеют типStringилиFixedString, преобразуются в строки с использованием их сериализации по умолчанию. Поскольку это снижает производительность, не рекомендуется использовать аргументы типов, отличных отString/FixedString.StringилиFixedString
Возвращаемое значение
Возвращает строку, сформированную конкатенацией аргументов. Если какое-либо из значений аргументов равно NULL, функция возвращает NULL. String
Примеры
Пример использования
conv
Добавлено в версии v1.1
Преобразует числа между разными системами счисления.
Функция преобразует число из одной системы счисления в другую. Поддерживаются системы счисления с основанием от 2 до 36. Для оснований больше 10 используются буквы A–Z (без учета регистра) для представления цифр 10–35.
Эта функция совместима с функцией CONV() в MySQL.
Синтаксис
Аргументы
number— Число для преобразования. Может быть строкой или числом. -from_base— Исходное основание системы счисления (2–36). Должно быть целым числом. -to_base— Целевое основание системы счисления (2–36). Должно быть целым числом.
Возвращаемое значение
Строковое представление числа в целевой системе счисления.
Примеры
Преобразование десятичного числа в двоичное
Преобразование шестнадцатеричного значения в десятичное
Преобразование при отрицательном числе
Преобразование двоичного числа в восьмеричное
convertCharset
Добавлена в версии v1.1
Возвращает строку s, преобразованную из кодировки from в кодировку to.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает строку s, преобразованную из кодировки from в кодировку to. String
Примеры
Пример использования
damerauLevenshteinDistance
Добавлено в: v24.1
Вычисляет расстояние Дамерау — Левенштейна между двумя байтовыми строками.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает расстояние Дамерау—Левенштейна между двумя строками. UInt64
Примеры
Пример использования
decodeHTMLComponent
Появилась в версии: v23.9
Преобразует HTML-сущности в строке в соответствующие символы.
Синтаксис
Аргументы
s— строка, содержащая HTML-сущности для декодирования.String
Возвращаемое значение
Возвращает строку с декодированными HTML-сущностями. String
Примеры
Пример использования
decodeXMLComponent
Появилась в версии: v21.2
Преобразует XML‑сущности в строке в соответствующие им символы.
Синтаксис
Аргументы
s— строка, содержащая XML-сущности для декодирования.String
Возвращаемое значение
Возвращает переданную строку с декодированными XML-сущностями. String
Примеры
Пример использования
editDistance
Добавлена в версии: v23.9
Вычисляет редакционное расстояние между двумя байтовыми строками.
Синтаксис
Псевдонимы: levenshteinDistance
Аргументы
Возвращаемое значение
Возвращает редакционное расстояние между двумя строками. UInt64
Примеры
Пример использования
editDistanceUTF8
Введена в версии: v24.6
Вычисляет редакционное расстояние между двумя строками в кодировке UTF-8.
Синтаксис
Псевдонимы: levenshteinDistanceUTF8
Аргументы
Возвращаемое значение
Возвращает редакционное расстояние между двумя строками в кодировке UTF-8. UInt64
Примеры
Пример использования
encodeXMLComponent
Введена в версии: v21.1
Экранирует символы для помещения строки в текстовый узел или атрибут XML.
Синтаксис
Аргументы
s— строка для экранирования.String
Возвращаемое значение
Возвращает экранированную строку. String
Примеры
Пример использования
endsWith
Добавлена в версии: v1.1
Проверяет, оканчивается ли строка указанным суффиксом.
Синтаксис
Аргументы
s— строка для проверки.Stringsuffix— суффикс, на наличие которого нужно проверить строку.String
Возвращаемое значение
Возвращает 1, если строка s оканчивается на suffix, иначе 0. UInt8
Примеры
Пример использования
endsWithCaseInsensitive
Добавлено в версии: v25.9
Проверяет, оканчивается ли строка заданным суффиксом без учета регистра.
Синтаксис
Аргументы
s— строка, которую нужно проверить.Stringsuffix— суффикс, который нужно искать без учёта регистра.String
Возвращаемое значение
Возвращает 1, если s оканчивается на suffix без учёта регистра, иначе 0. UInt8
Примеры
Пример использования
endsWithCaseInsensitiveUTF8
Впервые представлена в: v25.9
Возвращает, оканчивается ли строка s суффиксом suffix без учёта регистра.
Предполагается, что строка содержит корректный текст в кодировке UTF-8.
Если это предположение не выполняется, исключение не выбрасывается, а результат не определён.
Синтаксис
Аргументы
s— строка для проверки.Stringsuffix— суффикс, сравнение с которым выполняется без учёта регистра.String
Возвращаемое значение
Возвращает 1, если s заканчивается на suffix без учёта регистра, иначе 0. UInt8
Примеры
Пример использования
endsWithUTF8
Введена в: v23.8
Возвращает, оканчивается ли строка s суффиксом suffix.
Предполагается, что строка содержит корректный текст в кодировке UTF-8.
Если это предположение нарушено, исключение не выбрасывается, а результат не определён.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает 1, если s заканчивается на suffix, иначе 0. UInt8
Примеры
Пример использования
extractTextFromHTML
Появилась в v21.3
Извлекает текстовое содержимое из HTML или XHTML.
Эта функция удаляет HTML‑теги, комментарии и элементы script/style, оставляя только текстовое содержимое. Она выполняет:
- Удаление всех HTML/XML‑тегов
- Удаление комментариев (
<!-- -->) - Удаление элементов script и style вместе с их содержимым
- Обработку секций CDATA (копируются как есть)
- Корректную обработку и нормализацию пробелов
Примечание: HTML‑сущности не декодируются и при необходимости должны обрабатываться отдельной функцией.
Синтаксис
Аргументы
html— строка с HTML-содержимым, из которого нужно извлечь текст.String
Возвращаемое значение
Возвращает извлечённый текст с нормализованными пробельными символами. String
Примеры
Пример использования
firstLine
Добавлена в: v23.7
Возвращает первую строку многострочной строки.
Синтаксис
Аргументы
s— входная строка.String
Возвращаемое значение
Возвращает первую строку входной строки или всю строку, если в ней нет разделителей строк. String
Примеры
Пример использования
idnaDecode
Добавлена в версии: v24.1
Возвращает представление доменного имени в Юникоде (UTF-8) в соответствии с алгоритмом ToUnicode и механизмом Internationalized Domain Names in Applications (IDNA).
В случае ошибки (например, при некорректном входном значении) возвращается исходная строка.
Обратите внимание, что повторное применение функций idnaEncode() и idnaDecode() не обязательно возвращает исходную строку из-за нормализации регистра.
Синтаксис
Аргументы
s— входная строка.String
Возвращаемое значение
Возвращает представление входной строки в Юникоде (UTF-8) согласно механизму IDNA для входного значения. String
Примеры
Пример использования
idnaEncode
Добавлено в версии: v24.1
Возвращает ASCII-представление (алгоритм ToASCII) доменного имени в соответствии с механизмом Internationalized Domain Names in Applications (IDNA). Входная строка должна быть в UTF-кодировке и преобразуемой в ASCII-строку, в противном случае генерируется исключение.
Процент-декодирование (percent decoding) и удаление табуляции, пробелов или управляющих символов не выполняются.
Синтаксис
Аргументы
s— входная строка.String
Возвращаемое значение
Возвращает ASCII-представление входной строки в соответствии с механизмом IDNA для входного значения. String
Примеры
Пример использования
initcap
Впервые появилась в: v23.7
Преобразует первую букву каждого слова в верхний регистр, а остальные — в нижний. Слова представляют собой последовательности буквенно-цифровых символов, разделённых небуквенно-цифровыми символами.
Поскольку initcap преобразует в верхний регистр только первую букву каждого слова, вы можете наблюдать неожиданное поведение для слов, содержащих апострофы или заглавные буквы.
Это известная особенность, и в настоящее время нет планов что-либо в ней менять.
Синтаксис
Аргументы
s— входная строка.String
Возвращаемое значение
Возвращает строку s, в которой первая буква каждого слова преобразована в верхний регистр. String
Примеры
Пример использования
Пример известного поведения для слов с апострофами или заглавными буквами
initcapUTF8
Добавлено в версии: v23.7
Подобно initcap, initcapUTF8 преобразует первую букву каждого слова в верхний регистр, а остальные — в нижний.
Предполагается, что строка содержит корректный текст в кодировке UTF-8.
Если это предположение нарушено, исключение не выбрасывается, а результат не определён.
Эта функция не определяет язык, поэтому, например, для турецкого результат может быть не совсем корректным (i/İ vs. i/I). Если длина последовательности байт UTF-8 различается для верхнего и нижнего регистра одной и той же кодовой точки, результат для этой кодовой точки может быть некорректным.
Синтаксис
Аргументы
s— входная строка.String
Возвращаемое значение
Возвращает s, в которой первая буква каждого слова преобразована в верхний регистр. String
Примеры
Пример использования
isValidASCII
Введена в версии: v25.9
Возвращает 1, если входной String или FixedString содержит только ASCII-байты (0x00–0x7F), в противном случае — 0. Оптимизирована для положительного случая (когда входное значение является корректным ASCII).
Синтаксис
Псевдонимы: isASCII
Аргументы
- Нет.
Возвращаемое значение
Примеры
isValidASCII
isValidUTF8
Впервые представлена в: v20.1
Проверяет, представляет ли набор байтов корректный текст в кодировке UTF-8.
Синтаксис
Аргументы
s— строка для проверки на корректность кодировки UTF-8.String
Возвращаемое значение
Возвращает 1, если набор байтов представляет собой корректный текст в кодировке UTF-8, иначе 0. UInt8
Примеры
Пример использования
jaroSimilarity
Введена в версии: v24.1
Вычисляет сходство по метрике Jaro между двумя байтовыми строками.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает коэффициент сходства Джаро между двумя строками. Float64
Примеры
Пример использования
jaroWinklerSimilarity
Впервые добавлена в версии v24.1
Вычисляет меру сходства Яро — Винклера между двумя байтовыми строками.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает значение метрики сходства Джаро–Винклера для двух строк. Float64
Примеры
Пример использования
left
Введено в версии v22.1
Возвращает подстроку строки s с указанным offset от левого края.
Синтаксис
Аргументы
s— Строка, для которой вычисляется подстрока.StringилиFixedStringoffset— Смещение в байтах.(U)Int*
Возвращаемое значение
Возвращает:
- Для положительного
offset— подстроку строкиsдлинойoffsetбайт, начиная с левого края строки. - Для отрицательного
offset— подстроку строкиsдлинойlength(s) - |offset|байт, начиная с левого края строки. - Пустую строку, если
lengthравно0.String
Примеры
Положительный offset
Отрицательное смещение
leftPad
Добавлено в: v21.8
Дополняет строку слева пробелами или указанной строкой (повторяя её при необходимости) до тех пор, пока длина результирующей строки не достигнет заданного значения length.
Синтаксис
Псевдонимы: lpad
Аргументы
string— Входная строка, которую необходимо дополнить.Stringlength— Длина результирующей строки. Если значение меньше длины входной строки, входная строка укорачивается доlengthсимволов.(U)Int*pad_string— Необязательный параметр. Строка, которой дополняется входная строка. Если не задано, входная строка дополняется пробелами.String
Возвращаемое значение
Возвращает строку заданной длины, дополненную слева. String
Примеры
Пример использования
leftPadUTF8
Добавлена в версии: v21.8
Дополняет UTF8‑строку слева пробелами или указанной строкой (при необходимости многократно) до тех пор, пока результирующая строка не достигнет заданной длины.
В отличие от leftPad, который измеряет длину строки в байтах, в этом случае длина строки измеряется в кодовых точках.
Синтаксис
Аргументы
string— Входная строка, которую необходимо дополнить.Stringlength— Длина результирующей строки. Если значение меньше длины входной строки, то входная строка укорачивается доlengthсимволов.(U)Int*pad_string— Необязательный параметр. Строка, которой дополняется входная строка. Если не указан, входная строка дополняется пробелами.String
Возвращаемое значение
Возвращает строку заданной длины, дополненную слева. String
Примеры
Пример использования
leftUTF8
Появилась в версии: v22.1
Возвращает подстроку строки s в кодировке UTF‑8 с заданным offset, начиная с левого края.
Синтаксис
Аргументы
s— строка в кодировке UTF-8, из которой вычисляется подстрока.StringилиFixedStringoffset— количество байт смещения.(U)Int*
Возвращаемое значение
Возвращает:
- Для положительного
offset— подстрокуsдлинойoffsetбайт, начиная с левого края строки.\n" - Для отрицательного
offset— подстрокуsдлинойlength(s) - |offset|байт, начиная с левого края строки.\n" - Пустую строку, если
lengthравно 0.String
Примеры
Положительное смещение
Отрицательное смещение
lengthUTF8
Введена в версии: v1.1
Возвращает длину строки в кодовых точках Unicode, а не в байтах или символах. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не выбрасывается, и результат не определён.
Синтаксис
Псевдонимы: CHARACTER_LENGTH, CHAR_LENGTH
Аргументы
s— строка, содержащая допустимый текст в кодировке UTF-8.String
Возвращаемое значение
Длина строки s в кодовых точках Unicode. UInt64
Примеры
Пример использования
lower
Введена в версии: v1.1
Преобразует ASCII-строку в нижний регистр.
Синтаксис
Псевдонимы: lcase
Аргументы
s— строка, которую нужно преобразовать в нижний регистр.String
Возвращаемое значение
Возвращает строку s в нижнем регистре. String
Примеры
Пример использования
lowerUTF8
Введена в: v1.1
Преобразует строку в нижний регистр, предполагая, что строка содержит корректный текст в кодировке UTF-8. Если это предположение не выполняется, исключение не выбрасывается, а результат остается неопределённым.
Синтаксис
Аргументы
input— входная строка для преобразования в нижний регистр.String
Возвращаемое значение
Возвращает строку в нижнем регистре. String
Примеры
Первый
normalizeUTF8NFC
Добавлена в версии: v21.11
Нормализует строку UTF-8 в соответствии с нормальной формой NFC.
Синтаксис
Аргументы
str— входная строка в кодировке UTF-8.String
Возвращаемое значение
Возвращает строку UTF-8 в нормализованной форме NFC. String
Примеры
Пример использования
normalizeUTF8NFD
Добавлена в версии: v21.11
Нормализует строку в кодировке UTF-8 в соответствии с формой нормализации NFD.
Синтаксис
Аргументы
str— входная строка UTF-8.String
Возвращаемое значение
Возвращает строку UTF-8 в нормализованной форме NFD. String
Примеры
Пример использования
normalizeUTF8NFKC
Появилась в версии: v21.11
Нормализует строку в кодировке UTF-8 в соответствии с нормальной формой NFKC.
Синтаксис
Аргументы
str— входная строка в кодировке UTF-8.String
Возвращаемое значение
Возвращает строку в кодировке UTF-8, нормализованную в форму NFKC. String
Примеры
Пример использования
normalizeUTF8NFKD
Добавлена в: v21.11
Нормализует строку в кодировке UTF-8 в соответствии с формой нормализации NFKD.
Синтаксис
Аргументы
str— входная строка в кодировке UTF-8.String
Возвращаемое значение
Возвращает строку в нормализованной форме NFKD (UTF-8). String
Примеры
Пример использования
punycodeDecode
Добавлено в: v24.1
Возвращает исходный текст в кодировке UTF-8 для строки, закодированной в формате Punycode. Если передана некорректная строка в формате Punycode, генерируется исключение.
Синтаксис
Аргументы
s— строка в кодировке Punycode.String
Возвращаемое значение
Возвращает обычный текст входного значения. String
Примеры
Пример использования
punycodeEncode
Впервые представлена в версии: v24.1
Возвращает представление строки в формате Punycode. Строка должна быть закодирована в UTF-8, в противном случае поведение не определено.
Синтаксис
Аргументы
s— Входное значение.String
Возвращаемое значение
Возвращает представление входного значения в кодировке Punycode. String
Примеры
Пример использования
regexpExtract
Впервые появилась в: v23.2
Извлекает первую подстроку в haystack, которая соответствует шаблону регулярного выражения и относится к группе с указанным индексом.
Синтаксис
Псевдонимы: REGEXP_EXTRACT
Аргументы
haystack— Строка, в которой будет производиться поиск по регулярному выражению.Stringpattern— Строка, регулярное выражение.patternможет содержать несколько групп регулярного выражения,indexуказывает, какую группу нужно извлечь. Индекс 0 означает совпадение со всем регулярным выражением.const Stringindex— Необязательный аргумент. Целое число, большее или равное 0, по умолчанию 1. Определяет, какую группу регулярного выражения нужно извлечь.(U)Int*
Возвращаемое значение
Возвращает строку, соответствующую шаблону. String
Примеры
Пример использования
repeat
Добавлено в: v20.1
Повторяет строку указанное число раз, объединяя результаты в одну строку.
Синтаксис
Аргументы
Возвращаемое значение
Строка, содержащая строку s, повторённую n раз. Если n — отрицательное число, функция возвращает пустую строку. String
Примеры
Пример использования
reverseUTF8
Добавлено в версии: v1.1
Переворачивает последовательность кодовых точек Unicode в строке. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не выбрасывается, и результат не определён.
Синтаксис
Аргументы
s— строка, содержащая корректный текст в кодировке UTF-8.String
Возвращаемое значение
Возвращает строку с обращённой последовательностью кодовых точек Unicode. String
Примеры
Пример использования
right
Появилась в версии: v22.1
Возвращает подстроку строки s с указанным смещением offset, отсчитываемым справа.
Синтаксис
Аргументы
s— Строка, из которой вычисляется подстрока.StringилиFixedStringoffset— Количество байт смещения.(U)Int*
Возвращаемое значение
Возвращает:
- Для положительного
offset— подстрокуsдлинойoffsetбайт, начиная с конца строки. - Для отрицательного
offset— подстрокуsдлинойlength(s) - |offset|байт, начиная с конца строки. - Пустую строку, если
lengthравно0.String
Примеры
Положительное смещение
Отрицательное смещение
rightPad
Введена в версии v21.8
Дополняет строку справа пробелами или указанной строкой (при необходимости многократно) до тех пор, пока результирующая строка не достигнет значения length.
Синтаксис
Псевдонимы: rpad
Аргументы
string— Входная строка, которую нужно дополнить.Stringlength— Длина результирующей строки. Если значение меньше длины входной строки, то входная строка укорачивается доlengthсимволов.(U)Int*pad_string— Необязательный аргумент. Строка, которой дополняется входная строка. Если не указана, входная строка дополняется пробелами.String
Возвращаемое значение
Возвращает строку заданной длины, дополненную справа. String
Примеры
Пример использования
rightPadUTF8
Введена в: v21.8
Дополняет строку справа пробелами или указанной строкой (при необходимости несколько раз), пока результирующая строка не достигнет заданной длины.
В отличие от rightPad, который измеряет длину строки в байтах, здесь длина строки измеряется в кодовых точках.
Синтаксис
Аргументы
string— Входная строка, которую необходимо дополнить.Stringlength— Длина результирующей строки. Если значение меньше длины входной строки, входная строка укорачивается доlengthсимволов.(U)Int*pad_string— Необязательный аргумент. Строка, которой дополняется входная строка. Если не задан, входная строка дополняется пробелами.String
Возвращаемое значение
Возвращает строку заданной длины, дополненную справа. String
Примеры
Пример использования
rightUTF8
Введена в: v22.1
Возвращает подстроку UTF-8-кодированной строки s с указанным offset, отсчитываемым от конца строки (справа).
Синтаксис
Аргументы
s— Строка в кодировке UTF-8, из которой извлекается подстрока.StringилиFixedStringoffset— Количество байт смещения.(U)Int*
Возвращаемое значение
Возвращает:
- Для положительного
offset— подстрокуsдлинойoffsetбайт, начиная с правого края строки. - Для отрицательного
offset— подстрокуsдлинойlength(s) - |offset|байт, начиная с правого края строки. - Пустую строку, если
lengthравно0.String
Примеры
Положительное смещение
Отрицательное смещение
soundex
Впервые представлена в: v23.4
Возвращает код Soundex для строки.
Синтаксис
Аргументы
s— входная строка.String
Возвращаемое значение
Возвращает код Soundex для входной строки. String
Примеры
Пример использования
space
Появилась в версии: v23.5
Повторяет пробел ( ) указанное число раз.
Синтаксис
Аргументы
n— количество повторений пробела.(U)Int*
Возвращаемое значение
Возвращает строку, содержащую пробел, повторённый n раз. Если n <= 0, функция возвращает пустую строку. String
Примеры
Пример использования
sparseGrams
Добавлена в версии: v25.5
Находит все подстроки заданной строки длиной не менее n,
для которых хеши (n-1)-грамм на границах подстроки
строго больше, чем хеши любых (n-1)-грамм внутри подстроки.
Использует CRC32 в качестве хеш-функции.
Синтаксис
Аргументы
s— Входная строка.Stringmin_ngram_length— Необязательный параметр. Минимальная длина извлекаемой n-граммы. Минимальное и значение по умолчанию — 3.UInt*max_ngram_length— Необязательный параметр. Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Не должно быть меньшеmin_ngram_length.UInt*min_cutoff_length— Необязательный параметр. Если задан, возвращаются только n-граммы с длиной не меньшеmin_cutoff_length. Значение по умолчанию совпадает сmin_ngram_length. Не должно быть меньшеmin_ngram_lengthи не должно быть большеmax_ngram_length.UInt*
Возвращаемое значение
Возвращает массив выбранных подстрок. Array(String)
Примеры
Пример использования
sparseGramsHashes
Добавлена в версии v25.5
Находит хэши всех подстрок заданной строки длиной не менее n,
для которых хэши (n-1)-грамм на границах подстроки
строго больше хэшей любых (n-1)-грамм внутри подстроки.
Использует CRC32 в качестве хеш-функции.
Синтаксис
Аргументы
s— входная строка.Stringmin_ngram_length— необязательный параметр. Минимальная длина извлекаемых n-грамм. Значение по умолчанию и минимальное значение — 3.UInt*max_ngram_length— необязательный параметр. Максимальная длина извлекаемых n-грамм. Значение по умолчанию — 100. Не должно быть меньшеmin_ngram_length.UInt*min_cutoff_length— необязательный параметр. Если задан, возвращаются только n-граммы с длиной больше или равнойmin_cutoff_length. Значение по умолчанию совпадает сmin_ngram_length. Не должно быть меньшеmin_ngram_lengthи не должно быть большеmax_ngram_length.UInt*
Возвращаемое значение
Возвращает массив хешей CRC32 выбранных подстрок. Array(UInt32)
Примеры
Пример использования
sparseGramsHashesUTF8
Добавлено в: v25.5
Находит хэши всех подстрок заданной UTF-8-строки длиной не менее n, для которых хэши (n-1)-грамм на границах подстроки строго больше хэшей любых (n-1)-грамм внутри подстроки.
Ожидает строку в кодировке UTF-8, выбрасывает исключение в случае некорректной UTF-8-последовательности.
Использует CRC32 в качестве хеш-функции.
Синтаксис
Аргументы
s— входная строка.Stringmin_ngram_length— необязательный параметр. Минимальная длина извлекаемой n-граммы. Значение по умолчанию и минимальное значение — 3.UInt*max_ngram_length— необязательный параметр. Максимальная длина извлекаемой n-граммы. Значение по умолчанию — 100. Не должно быть меньшеmin_ngram_length.UInt*min_cutoff_length— необязательный параметр. Если задан, возвращаются только n-граммы длиной не меньшеmin_cutoff_length. Значение по умолчанию совпадает сmin_ngram_length. Не должен быть меньшеmin_ngram_lengthи не должен быть большеmax_ngram_length.UInt*
Возвращаемое значение
Возвращает массив хэшей CRC32 выбранных подстрок в кодировке UTF-8. Array(UInt32)
Примеры
Пример использования
sparseGramsUTF8
Добавлено в: v25.5
Находит все подстроки заданной строки в кодировке UTF-8 длиной не менее n, для которых значения хэшей (n-1)-грамм на границах подстроки строго больше, чем значения хэшей любых (n-1)-грамм внутри подстроки.
Ожидает строку в кодировке UTF-8; при некорректной последовательности UTF-8 генерирует исключение.
В качестве хэш-функции используется CRC32.
Синтаксис
Аргументы
s— Входная строка.Stringmin_ngram_length— Необязательный параметр. Минимальная длина извлекаемых n-грамм. Значение по умолчанию и минимальное значение — 3.UInt*max_ngram_length— Необязательный параметр. Максимальная длина извлекаемых n-грамм. Значение по умолчанию — 100. Не должен быть меньшеmin_ngram_length.UInt*min_cutoff_length— Необязательный параметр. Если задан, возвращаются только n-граммы длиной не меньшеmin_cutoff_length. Значение по умолчанию совпадает сmin_ngram_length. Не должен быть меньшеmin_ngram_lengthи не должен превышатьmax_ngram_length.UInt*
Возвращаемое значение
Возвращает массив отобранных подстрок в кодировке UTF-8. Array(String)
Примеры
Пример использования
startsWith
Добавлена в: v1.1
Проверяет, начинается ли строка с заданной строки.
Синтаксис
Аргументы
s— строка, которую нужно проверить.Stringprefix— префикс, на наличие которого нужно проверить.String
Возвращаемое значение
Возвращает 1, если строка s начинается с prefix, иначе 0. UInt8
Примеры
Пример использования
startsWithCaseInsensitive
Добавлена в версии: v25.9
Проверяет, начинается ли строка с заданной подстроки без учета регистра.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает 1, если s начинается с префикса prefix без учета регистра, иначе 0. UInt8
Примеры
Пример использования
startsWithCaseInsensitiveUTF8
Появилась в: v25.9
Проверяет, начинается ли строка с указанного префикса без учета регистра. Предполагается, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не выбрасывается, и результат неопределён.
Синтаксис
Аргументы
s— строка для проверки.Stringprefix— префикс (без учета регистра), который нужно проверить.String
Возвращаемое значение
Возвращает 1, если s начинается с префикса prefix без учета регистра, иначе 0. UInt8
Примеры
Пример использования
startsWithUTF8
Добавлена в версии: v23.8
Проверяет, начинается ли строка с указанного префикса. Предполагается, что строка содержит текст в корректной кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает 1, если s начинается с prefix, иначе 0. UInt8
Примеры
Пример использования
stringBytesEntropy
Появилась в версии v25.6
Вычисляет энтропию Шеннона распределения байтов в строке.
Синтаксис
Аргументы
s— строка для анализа.String
Возвращаемое значение
Возвращает энтропию Шеннона распределения байтов в строке. Float64
Примеры
Пример использования
stringBytesUniq
Введена в версии: v25.6
Подсчитывает количество уникальных байтов в строке.
Синтаксис
Аргументы
s— строка для анализа.String
Возвращаемое значение
Возвращает количество различных байт в строке. UInt16
Примеры
Пример использования
stringJaccardIndex
Введена в версии v23.11
Вычисляет индекс сходства Жаккара между двумя байтовыми строками.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает индекс сходства Жаккара между двумя строками. Float64
Примеры
Пример использования
stringJaccardIndexUTF8
Добавлена в версии: v23.11
Аналог stringJaccardIndex, но для строк в кодировке UTF-8.
Синтаксис
Аргументы
s1— Первая входная строка в кодировке UTF-8.Strings2— Вторая входная строка в кодировке UTF-8.String
Возвращаемое значение
Возвращает индекс сходства Жаккара между двумя строками в кодировке UTF-8. Float64
Примеры
Пример использования
substring
Введена в версии: v1.1
Возвращает подстроку строки s, которая начинается с указанного байтового индекса offset.
Подсчёт байтов начинается с 1 по следующей логике:
- Если
offsetравен0, возвращается пустая строка. - Если
offsetотрицательный, подстрока начинается заoffsetсимволов от конца строки, а не от её начала.
Необязательный аргумент length указывает максимальное количество байт, которое может иметь возвращаемая подстрока.
Синтаксис
Псевдонимы: byteSlice, mid, substr
Аргументы
s— Строка, из которой извлекается подстрока.StringилиFixedStringилиEnumoffset— Начальная позиция подстроки вs.(U)Int*length— Необязательный параметр. Максимальная длина подстроки.(U)Int*
Возвращаемое значение
Возвращает подстроку s длиной length байт, начиная с индекса offset. String
Примеры
Базовое использование
substringIndex
Введена в версии: v23.7
Возвращает подстроку из s до count-го вхождения разделителя delim, аналогично функциям в Spark или MySQL.
Синтаксис
Псевдонимы: SUBSTRING_INDEX
Аргументы
s— Строка, из которой извлекается подстрока.Stringdelim— Символ-разделитель.Stringcount— Количество вхождений разделителя, которые нужно учесть перед извлечением подстроки. Если значениеcountположительное, возвращается всё слева от последнего разделителя (считая слева направо). Если значениеcountотрицательное, возвращается всё справа от последнего разделителя (считая справа налево).UIntилиInt
Возвращаемое значение
Возвращает подстроку строки s до count-го вхождения delim. String
Примеры
Пример использования
substringIndexUTF8
Впервые появилась в: v23.7
Возвращает подстроку s перед count вхождениями разделителя delim, выполняя обработку на уровне кодовых точек Unicode.
Предполагается, что строка содержит корректный текст в кодировке UTF-8.
Если это предположение нарушено, исключение не выбрасывается, а результат не определяется.
Синтаксис
Аргументы
s— Строка, из которой извлекается подстрока.Stringdelim— Символ, по которому выполняется разделение.Stringcount— Количество вхождений разделителя, которые нужно посчитать перед извлечением подстроки. Если значение положительное, возвращается всё слева от последнего разделителя (отсчёт слева направо). Если значение отрицательное, возвращается всё справа от последнего разделителя (отсчёт справа налево).UIntилиInt
Возвращаемое значение
Возвращает подстроку s до count-го вхождения delim. String
Примеры
Пример UTF-8
substringUTF8
Добавлено в: v1.1
Возвращает подстроку строки s, которая начинается с указанного индекса по кодовым точкам offset.
Подсчёт кодовых точек начинается с 1 по следующей логике:
- Если
offsetравен0, возвращается пустая строка. - Если
offsetотрицательный, подстрока начинается наoffsetкодовых точек от конца строки, а не от начала.
Необязательный аргумент length задаёт максимальное количество кодовых точек, которое может иметь возвращаемая подстрока.
Эта функция предполагает, что строка содержит валидный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, и результат является неопределённым.
Синтаксис
Аргументы
s— Строка, из которой вычисляется подстрока.StringилиFixedStringилиEnumoffset— Начальная позиция подстроки вs.IntилиUIntlength— Максимальная длина подстроки. Необязательный аргумент.IntилиUInt
Возвращаемое значение
Возвращает подстроку s длиной length кодовых точек, начиная с индекса кодовой точки offset. String
Примеры
Пример использования
toValidUTF8
Добавлена в: v20.1
Преобразует строку в корректную кодировку UTF-8, заменяя любые некорректные символы UTF-8 символом-заполнителем � (U+FFFD).
Если обнаруживается несколько подряд идущих некорректных символов, они заменяются одним символом-заполнителем.
Синтаксис
Аргументы
s— Любой набор байтов, представленный объектом типа данныхString.String
Возвращаемое значение
Возвращает допустимую строку в кодировке UTF-8. String
Примеры
Пример использования
trimBoth
Представлена в: v20.1
Удаляет указанные символы с начала и с конца строки. По умолчанию — распространённые пробельные символы (ASCII).
Синтаксис
Псевдонимы: trim
Аргументы
s— Строка, которую нужно обрезать по краям.Stringtrim_characters— Необязательный параметр. Набор символов, которые нужно обрезать. Если не указан, удаляются стандартные пробельные символы.String
Возвращаемое значение
Возвращает строку, у которой указанные символы обрезаны с обеих сторон. String
Примеры
Пример использования
trimLeft
Добавлена в версии v20.1
Удаляет указанные символы с начала строки. По умолчанию удаляет распространённые пробельные символы (ASCII).
Синтаксис
Псевдонимы: ltrim
Аргументы
input— Строка для обрезки.Stringtrim_characters— Необязательный параметр. Набор символов для обрезки. Если параметр не указан, удаляются стандартные пробельные символы.String
Возвращаемое значение
Возвращает строку с указанными символами, удалёнными слева. String
Примеры
Пример использования
trimRight
Введена в версии v20.1
Удаляет указанные символы с конца строки. По умолчанию удаляет стандартные пробельные символы (ASCII).
Синтаксис
Псевдонимы: rtrim
Аргументы
s— Строка для обрезки.Stringtrim_characters— Необязательный набор символов для обрезки. Если не указан, удаляются обычные пробельные символы.String
Возвращаемое значение
Возвращает строку, в которой указанные символы удалены справа. String
Примеры
Пример использования
tryBase32Decode
Добавлена в: v25.6
Принимает строку и декодирует её, используя кодировку Base32.
Синтаксис
Аргументы
encoded— столбец типа String или константа для декодирования. Если строка не является корректной строкой в кодировке Base32, в случае ошибки возвращается пустая строка.String
Возвращаемое значение
Возвращает строку с декодированным значением аргумента. String
Примеры
Пример использования
tryBase58Decode
Добавлена в версии v22.10
Аналогична base58Decode, но в случае ошибки возвращает пустую строку.
Синтаксис
Аргументы
encoded— строковый столбец или константа. Если строка не является корректной Base58-строкой, при ошибке возвращается пустая строка.String
Возвращаемое значение
Возвращает строку, содержащую декодированное значение аргумента. String
Примеры
Пример использования
tryBase64Decode
Появилась в версии: v18.16
Аналог base64Decode, но в случае ошибки возвращает пустую строку.
Синтаксис
Аргументы
encoded— Столбец или константа типа String для декодирования. Если строка не является корректной строкой в кодировке Base64, в случае ошибки возвращается пустая строка.String
Возвращаемое значение
Возвращает строку, содержащую декодированное значение аргумента. String
Примеры
Пример использования
tryBase64URLDecode
Введена в: v18.16
Аналогична base64URLDecode, но в случае ошибки возвращает пустую строку.
Синтаксис
Аргументы
encoded— Строковый столбец или константа для декодирования. Если строка не является корректной строкой в кодировке Base64, в случае ошибки возвращается пустая строка.String
Возвращаемое значение
Возвращает строку, содержащую декодированное значение аргумента. String
Примеры
Пример использования
tryIdnaEncode
Добавлена в версии: v24.1
Возвращает представление доменного имени в Unicode (UTF-8) по алгоритму ToUnicode в соответствии с механизмом Internationalized Domain Names in Applications (IDNA). В случае ошибки возвращает пустую строку вместо выбрасывания исключения.
Синтаксис
Аргументы
s— входная строка.String
Возвращаемое значение
Возвращает ASCII-представление входной строки в соответствии с механизмом IDNA для входного значения или пустую строку, если входные данные некорректны. String
Примеры
Пример использования
tryPunycodeDecode
Добавлена в версии: v24.1
Аналог функции punycodeDecode, но возвращает пустую строку, если передана некорректная строка в кодировке Punycode.
Синтаксис
Аргументы
s— строка в кодировке Punycode.String
Возвращаемое значение
Возвращает обычную текстовую строку для входного значения или пустую строку, если входное значение недопустимо. String
Примеры
Пример использования
upper
Добавлена в версии: v1.1
Преобразует латинские символы ASCII в строке в верхний регистр.
Синтаксис
Псевдонимы: ucase
Аргументы
s— Строка для преобразования в верхний регистр.String
Возвращаемое значение
Возвращает строку s в верхнем регистре. String
Примеры
Пример использования
upperUTF8
Добавлена в: v1.1
Преобразует строку в верхний регистр, предполагая, что строка содержит корректный текст в кодировке UTF-8. Если это предположение нарушено, исключение не генерируется, а результат не определён.
Эта функция не определяет язык, поэтому, например, для турецкого результат может быть не совсем корректным (i/İ vs. i/I).
Если длина последовательности байтов UTF-8 различается для верхнего и нижнего регистра одной и той же кодовой точки (например, ẞ и ß), результат для этой кодовой точки может быть некорректным.
Синтаксис
Аргументы
s— строковый тип.String
Возвращаемое значение
Значение строкового типа данных. String
Примеры
Пример использования