Функции для работы со строками

В RQL представлен набор функций, предназначенных для обработки текстовых данных. Функции для поиска в строках, замены в строках, разбиения и слияния строк и массивов рассмотрены отдельно.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции проверки и приведения длины строк

Функция Описание

empty

Проверяет, является ли входная строка пустой. Возвращает 1 для пустой строки и 0 для непустой строки.

leftPad

Дополняет строку слева пробелами или заданной строкой (при необходимости несколько раз), пока результирующая строка не достигнет указанной длины.

leftPadUTF8

Дополняет строку слева пробелами или заданной строкой (при необходимости несколько раз) до достижения указанной длины. В отличие от leftPad, длина строки измеряется в кодовых точках.

length

Возвращает длину строки в байтах.

lengthUTF8

Возвращает длину строки в кодовых точках Unicode. Предполагается, что строка содержит допустимый текст в кодировке UTF-8.

notEmpty

Проверяет, не является ли входная строка пустой. Возвращает 1 для непустой строки и 0 для пустой строки.

rightPad

Дополняет строку справа пробелами или заданной строкой (при необходимости несколько раз) до достижения указанной длины.

rightPadUTF8

Дополняет строку справа пробелами или заданной строкой (при необходимости несколько раз) до достижения указанной длины. В отличие от rightPad, длина строки измеряется в кодовых точках.

trim

Удаляет пробельные символы с начала и конца строки.

trimBoth

Удаляет пробельные символы с обеих сторон строки.

trimLeft

Удаляет пробельные символы с начала строки.

trimRight

Удаляет пробельные символы с конца строки.

Функции преобразования регистра

Функция Описание

initcap

Преобразует первый символ каждого слова в верхний регистр.

initcapUTF8

То же, что и initcap, но учитывает кодировку UTF-8.

lower

Преобразует символы ASCII латиницы в строке в нижний регистр.

lowerUTF8

Преобразует строку в нижний регистр, предполагая, что строка содержит допустимый текст в кодировке UTF-8.

upper

Преобразует символы ASCII латиницы в строке в верхний регистр.

upperUTF8

Преобразует строку в верхний регистр, предполагая, что строка содержит допустимый текст в кодировке UTF-8.

Функции конкатенации и инверсии строк

Функция Описание

appendTrailingCharIfAbsent

Добавляет символ c к строке s, если s непустая и не заканчивается символом c.

concat

Конкатенирует заданные аргументы.

concatAssumeInjective

Аналогично concat, но предполагает, что concat(s1, s2, …​) → sn является инъективной. Может использоваться для оптимизации GROUP BY.

concatWithSeparator

Конкатенирует заданные строки с использованием заданного разделителя.

concatWithSeparatorAssumeInjective

Аналогично concatWithSeparator, но предполагает, что concatWithSeparator(sep, expr1, expr2, expr3…​) → result является инъективной. Может использоваться для оптимизации GROUP BY.

repeat

Конкатенирует строку с самой собой указанное количество раз.

reverse

Инвертирует последовательность байтов в строке.

reverseUTF8

Инвертирует последовательность кодовых точек Unicode в строке. Предполагается, что строка содержит допустимый текст в кодировке UTF-8.

space

Конкатенирует пробел указанное количество раз с самим собой.

Функции поиска и извлечения подстрок

Функция Описание

endsWith

Проверяет, заканчивается ли строка определенным суффиксом.

endsWithUTF8

То же, что и endsWith, но с учетом кодировки UTF-8.

firstLine

Возвращает первую строку из многострочного текста.

startsWith

Проверяет, начинается ли строка с определенного префикса.

startsWithUTF8

То же, что и startsWith, но с учетом кодировки UTF-8.

substring

Возвращает подстроку строки s, которая начинается с указанного индекса байта offset. Счет начинается с 1. Если offset равен 0, возвращается пустая строка. Если offset отрицательный, подстрока начинается с символов от конца строки.

substringIndex

Возвращает подстроку s до count вхождений разделителя delim, как в Spark или MySQL.

substringIndexUTF8

Аналогично substringIndex, но для кодовых точек Unicode. Предполагается, что строка содержит допустимый текст в кодировке UTF-8.

substringUTF8

Аналогично substring, но для кодовых точек Unicode. Предполагается, что строка содержит допустимый текст в кодировке UTF-8.

Функции валидации, нормализации и кодирования строк

Функция Описание

ascii

Возвращает ASCII код первого символа строки.

base58Decode

Декодирует строку из формата Base58.

base58Encode

Кодирует строку в формат Base58.

base64Decode

Декодирует строку из формата Base64.

base64Encode

Кодирует строку в формат Base64.

convertCharset

Возвращает строку s, преобразованную из кодировки from в кодировку to.

decodeHTMLComponent

Декодирует HTML компоненты из строки.

decodeXMLComponent

Декодирует компоненты XML из строки.

encodeXMLComponent

Кодирует компоненты XML в строке.

extractTextFromHTML

Извлекает текст из HTML строки.

idnaDecode

Декодирует строку из формата IDNA.

idnaEncode

Кодирует строку в формат IDNA.

isValidUTF8

Возвращает 1, если набор байтов составляет допустимый текст, закодированный в UTF-8, в противном случае 0.

normalizeUTF8NFC

Нормализует строку в нормализацию формы C (NFC) для Unicode.

normalizeUTF8NFD

Нормализует строку в нормализацию формы D (NFD) для Unicode.

normalizeUTF8NFKC

Нормализует строку в нормализацию формы KC (NFKC) для Unicode.

normalizeUTF8NFKD

Нормализует строку в нормализацию формы KD (NFKD) для Unicode.

punycodeDecode

Декодирует строку из формата Punycode.

punycodeEncode

Кодирует строку в формат Punycode.

toValidUTF8

Заменяет недопустимые символы UTF-8 на символ � (U+FFFD). Все подряд идущие недопустимые символы сжимаются в один символ замены.

tryBase58Decode

Попытка декодировать строку из формата Base58 с возвратом пустой строки в случае ошибки.

tryBase64Decode

Попытка декодировать строку из формата Base64 с возвратом пустой строки в случае ошибки.

tryIdnaEncode

Попытка кодировать строку в формат IDNA с возвратом пустой строки в случае ошибки.

tryPunycodeDecode

Попытка декодировать строку из формата Punycode с возвратом пустой строки в случае ошибки.

Функции хеширования

Функция Описание

CRC32

Вычисляет CRC32 хеш строки.

CRC32IEEE

Вычисляет CRC32 используя IEEE полином.

CRC64

Вычисляет CRC64 хеш строки.

normalizedQueryHash

Вычисляет хеш нормализованного запроса.

normalizeQuery

Нормализует строку запроса.

Функции оценки схожести строк

Функция Описание

byteHammingDistance

Вычисляет расстояние Хэмминга между двумя строками.

damerauLevenshteinDistance

Вычисляет расстояние Дамерау-Левенштейна между двумя строками.

editDistance

Вычисляет расстояние редактирования (Левенштейна) между двумя строками.

jaroSimilarity

Вычисляет сходство Джаро между двумя строками.

jaroWinklerSimilarity

Вычисляет сходство Джаро-Винклера между двумя строками.

soundex

Преобразует строку в ее код Soundex.

stringJaccardIndex

Вычисляет индекс Жаккара для двух строк.

stringJaccardIndexUTF8

Вычисляет индекс Жаккара для двух строк, учитывая кодировку UTF-8.

Была ли полезна эта страница?

Обратная связь