Перейти к основному содержанию
Приведённая ниже документация сгенерирована на основе системной таблицы system.functions.

alphaTokens

Добавленный в: v1.1.0 Выделяет подстроки из последовательных байтов в диапазонах a-z и A-Z и возвращает массив этих подстрок. Синтаксис
alphaTokens(s[, max_substrings])
Псевдонимы: splitByAlpha Аргументы
  • s — Строка, которую нужно разбить. String
  • max_substrings — Необязательно. Если max_substrings > 0, количество возвращаемых подстрок будет не больше max_substrings, в противном случае функция вернёт максимально возможное число подстрок. Int64
Возвращаемое значение Возвращает массив полученных подстрок строки s. Array(String) Примеры Пример использования
Query
SELECT alphaTokens('abca1abc');
Response
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc']          │
└─────────────────────────┘

arrayStringConcat

Добавленный в: v1.1.0 Объединяет строковые представления значений, перечисленных в массиве, используя указанный разделитель; это необязательный параметр, который по умолчанию равен пустой строке. Синтаксис
arrayStringConcat(arr[, separator])
Псевдонимы: array_to_string Аргументы
  • arr — Массив, элементы которого нужно объединить. Array(T)
  • separator — Необязательный параметр. Строка-разделитель. По умолчанию — пустая строка. const String
Возвращаемое значение Возвращает конкатенированную строку. String Примеры Пример использования
Query
SELECT arrayStringConcat(['12/05/2021', '12:50:00'], ' ') AS DateString;
Response
┌─DateString──────────┐
│ 12/05/2021 12:50:00 │
└─────────────────────┘

extractAllGroupsVertical

Добавленный в: v20.5.0 Находит все группы в строке с помощью регулярного выражения и возвращает массив массивов, в котором каждый массив содержит совпавшие фрагменты из всех групп, сгруппированные по порядку их появления во входной строке. Синтаксис
extractAllGroupsVertical(s, regexp)
Псевдонимы: extractAllGroups Аргументы
  • s — Входная строка, из которой нужно выполнить извлечение. String или FixedString
  • regexp — Регулярное выражение для поиска совпадений. const String или const FixedString
Возвращаемое значение Возвращает массив массивов, где каждый внутренний массив содержит группы захвата из одного совпадения. Для каждого совпадения формируется массив с элементами, соответствующими группам захвата в регулярном выражении (группа 1, группа 2 и т. д.). Если совпадений не найдено, возвращается пустой массив. Array(Array(String)) Примеры Пример использования
Query
WITH '< Server: nginx
< Date: Tue, 22 Jan 2019 00:26:14 GMT
< Content-Type: text/html; charset=UTF-8
< Connection: keep-alive
' AS s
SELECT extractAllGroupsVertical(s, '< ([\\w\\-]+): ([^\\r\\n]+)');
Response
[['Server','nginx'],['Date','Tue, 22 Jan 2019 00:26:14 GMT'],['Content-Type','text/html; charset=UTF-8'],['Connection','keep-alive']]

ngrams

Добавленный в: v21.11.0 Разбивает строку в кодировке UTF-8 на n-граммы длиной N. Синтаксис
ngrams(s, N)
Аргументы Возвращаемое значение Возвращает массив n-грамм. Array(String) Примеры Пример использования
Query
SELECT ngrams('ClickHouse', 3);
Response
['Cli','lic','ick','ckH','kHo','Hou','ous','use']

reverseBySeparator

Добавленный в: v26.2.0 Меняет порядок подстрок в строке, разделённых указанным разделителем, на обратный. Эта функция разбивает строку по разделителю, обращает порядок получившихся частей и снова объединяет их с помощью того же разделителя. Это полезно при разборе доменных имён, путей к файлам и других иерархических данных, когда нужно обратить порядок компонентов. Примеры:
  • reverseBySeparator(‘www.google.com’) returns ‘com.google.www’
  • reverseBySeparator(‘a/b/c’, ’/’) returns ‘c/b/a’
  • reverseBySeparator(‘x::y::z’, ’::’) returns ‘z::y::x’
Синтаксис
reverseBySeparator(string[, separator])
Аргументы
  • string — Входная строка, порядок частей которой нужно обратить. String
  • separator — Строка-разделитель, используемая для выделения частей. Если не указана, используется ’.’ (точка). По умолчанию: ’.’ String
Возвращаемое значение Возвращает строку с подстроками, расположенными в порядке справа налево относительно исходной строки и соединёнными тем же разделителем. String Примеры Базовое реверсирование домена
Query
SELECT reverseBySeparator('www.google.com')
Response
'com.google.www'
Обращение пути
Query
SELECT reverseBySeparator('a/b/c', '/')
Response
'c/b/a'
Произвольный разделитель
Query
SELECT reverseBySeparator('x::y::z', '::')
Response
'z::y::x'
Особый случай с точками
Query
SELECT reverseBySeparator('.a.b.', '.')
Response
'.b.a.'
Один элемент
Query
SELECT reverseBySeparator('single')
Response
'single'
Пустой разделитель
Query
SELECT reverseBySeparator('abcde', '')
Response
'edcba'

splitByChar

Добавленный в: v1.1.0 Разбивает строку по указанному постоянному разделителю separator, представляющему собой строку длиной ровно в один символ, на массив подстрок. Пустые подстроки могут появляться, если разделитель находится в начале или в конце строки, либо если подряд встречается несколько разделителей.
Параметр splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, будет ли оставшаяся часть строки включена в последний элемент результирующего массива, если аргумент max_substrings > 0.
Пустые подстроки могут появляться в следующих случаях:
  • Разделитель находится в начале или в конце строки
  • Подряд встречается несколько разделителей
  • Исходная строка s пуста
Синтаксис
splitByChar(separator, s[, max_substrings])
Аргументы
  • separator — Разделитель должен быть однобайтовым символом. String
  • s — Строка, которую нужно разделить. String
  • max_substrings — Необязательно. Если max_substrings > 0, возвращаемый массив будет содержать не более max_substrings подстрок; в противном случае функция вернет максимально возможное количество подстрок. Значение по умолчанию — 0. Int64
Возвращаемое значение Возвращает массив подстрок. Array(String) Примеры Пример использования
Query
SELECT splitByChar(',', '1,2,3,abcde');
Response
┌─splitByChar(⋯2,3,abcde')─┐
│ ['1','2','3','abcde']    │
└──────────────────────────┘

splitByNonAlpha

Добавленный в: v21.9.0 Разбивает строку по пробельным символам и знакам пунктуации на массив подстрок.
Параметр splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, включается ли оставшаяся часть строки в последний элемент результирующего массива, если аргумент max_substrings > 0.
Синтаксис
splitByNonAlpha(s[, max_substrings])
Аргументы
  • s — Строка, которую нужно разделить. String
  • max_substrings — Необязательно. Если max_substrings > 0, число возвращаемых подстрок не превысит max_substrings, в противном случае функция вернет максимально возможное количество подстрок. Значение по умолчанию: 0. Int64
Возвращаемое значение Возвращает массив подстрок, полученных из s. Array(String) Примеры Пример использования
Query
SELECT splitByNonAlpha('user@domain.com');
Response
['user','domain','com']

splitByRegexp

Добавленный в: v21.6.0 Разбивает строку по заданному регулярному выражению на массив подстрок. Если заданное регулярное выражение пустое, строка будет разбита на массив отдельных символов. Если для регулярного выражения не найдено ни одного совпадения, строка не будет разбита. Пустые подстроки могут появляться в следующих случаях:
  • совпадение непустого регулярного выражения находится в начале или в конце строки
  • есть несколько последовательных совпадений непустого регулярного выражения
  • исходная строка пуста, а регулярное выражение не пусто.
Параметр splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, будет ли оставшаяся часть строки включена в последний элемент результирующего массива, если argument max_substrings > 0.
Синтаксис
splitByRegexp(regexp, s[, max_substrings])
Аргументы
  • regexp — Регулярное выражение. Константа. String или FixedString
  • s — Строка, которую нужно разделить. String
  • max_substrings — Необязательно. Если max_substrings > 0, количество возвращаемых подстрок не будет превышать max_substrings, в противном случае функция вернёт столько подстрок, сколько возможно. Значение по умолчанию: 0. Int64
Возвращаемое значение Возвращает массив полученных подстрок строки s. Array(String) Примеры Пример использования
Query
SELECT splitByRegexp('\\d+', 'a12bc23de345f');
Response
┌─splitByRegex⋯c23de345f')─┐
│ ['a12bc23de345f']        │
└──────────────────────────┘
Пустое регулярное выражение
Query
SELECT splitByRegexp('', 'abcde');
Response
┌─splitByRegexp('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘

splitByString

Добавленный в: v1.1.0 Разбивает строку на массив подстрок, используя в качестве постоянного separator последовательность из нескольких символов. Если строка separator пуста, строка s разбивается на массив отдельных символов. Пустые подстроки могут появляться в следующих случаях:
  • Непустой разделитель находится в начале или в конце строки
  • Идут подряд несколько непустых разделителей
  • Исходная строка s пуста, а разделитель непустой
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, включается ли оставшаяся часть строки в последний элемент результирующего массива, если аргумент max_substrings > 0.
Синтаксис
splitByString(separator, s[, max_substrings])
Аргументы
  • separator — Разделитель. String
  • s — Строка, которую нужно разделить. String
  • max_substrings — Необязательный параметр. Если max_substrings > 0, число возвращаемых подстрок не будет превышать max_substrings; в противном случае функция вернёт максимально возможное число подстрок. Значение по умолчанию: 0. Int64
Возвращаемое значение Возвращает массив выбранных подстрок строки s Array(String) Примеры Пример использования
Query
SELECT splitByString(', ', '1, 2 3, 4,5, abcde');
Response
┌─splitByStrin⋯4,5, abcde')─┐
│ ['1','2 3','4,5','abcde'] │
└───────────────────────────┘
Пустой разделитель
Query
SELECT splitByString('', 'abcde');
Response
┌─splitByString('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘

splitByWhitespace

Добавленный в: v21.9.0 Разбивает строку, разделённую пробельными символами, на массив подстрок.
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, будет ли оставшаяся часть строки включена в последний элемент результирующего массива, если аргумент max_substrings > 0.
Синтаксис
splitByWhitespace(s[, max_substrings])
Аргументы
  • s — Строка, которую нужно разделить. String
  • max_substrings — Необязательно. Если max_substrings > 0, количество возвращаемых подстрок не будет превышать max_substrings, в противном случае функция вернет максимально возможное количество подстрок. Значение по умолчанию: 0. Int64
Возвращаемое значение Возвращает массив полученных подстрок строки s. Array(String) Примеры Пример использования
Query
SELECT splitByWhitespace('  1!  a,  b.  ');
Response
['1!','a,','b.']

tokens

Добавленный в: v21.11.0 Разбивает строку на токены с помощью указанного токенизатора. Доступные токенизаторы:
  • splitByNonAlpha разбивает строки по неалфавитно-цифровым ASCII-символам (см. также функцию splitByNonAlpha).
  • splitByString(S) разбивает строки по заданным пользователем строкам-разделителям S (см. также функцию splitByString). Разделители можно указать с помощью необязательного параметра, например, tokens(value, 'splitByString', [', ', '; ', '\n', '\\']). Обратите внимание, что каждая строка может состоять из нескольких символов (', ' в примере). Если список разделителей явно не задан, по умолчанию используется один пробельный символ [' '].
  • asciiCJK разбивает строки на токены, используя правила границ слов Unicode (аналогично UAX #29). ASCII-буквенно-цифровые символы и символы подчёркивания образуют токены с соединителями (: для букв, . и ' для символов одного типа). Символы Unicode вне ASCII становятся односимвольными токенами.
  • ngrams(N) разбивает строки на N-граммы одинаковой длины (см. также функцию ngrams). Длину n-граммы можно указать с помощью необязательного целочисленного параметра от 1 до 8, например, tokens(value, 'ngrams', 3). Если размер n-граммы явно не задан, по умолчанию используется 3.
  • sparseGrams(min_length, max_length, min_cutoff_length) разбивает строки на n-граммы переменной длины: не менее min_length и не более max_length символов включительно (см. также функцию sparseGrams). Если не указано иное, значения min_length и max_length по умолчанию равны 3 и 100. Если передан параметр min_cutoff_length, возвращаются только n-граммы длиной не меньше min_cutoff_length. По сравнению с ngrams(N), токенизатор sparseGrams создаёт N-граммы переменной длины, что позволяет гибче представлять исходный текст. Например, tokens(value, 'sparseGrams', 3, 5, 4) внутренне генерирует из входной строки 3-, 4- и 5-граммы, но возвращаются только 4- и 5-граммы.
  • array не выполняет токенизацию, то есть каждое значение в строке является токеном (см. также функцию array).
В случае с токенизатором splitByString, если токены не образуют префиксный код, скорее всего, вам нужно, чтобы при сопоставлении приоритет отдавался более длинным разделителям. Для этого передавайте разделители в порядке убывания длины. Например, с разделителями = ['%21', '%'] строка %21abc будет токенизирована как ['abc'], тогда как разделители = ['%', '%21'] дадут токенизацию ['21ac'] (что, вероятно, не то, что вам нужно). Синтаксис
tokens(value) -- токенизатор 'splitByNonAlpha'
tokens(value, 'splitByNonAlpha')
tokens(value, 'splitByString'[, separators])
tokens(value, 'asciiCJK')
tokens(value, 'ngrams'[, n])
tokens(value, 'sparseGrams'[, min_length, max_length[, min_cutoff_length]])
tokens(value, 'array')
Аргументы
  • value — Входная строка. String или FixedString
  • tokenizer — Используемый токенизатор. Допустимые аргументы: splitByNonAlpha, splitByString, asciiCJK, ngrams, sparseGrams и array. Необязательный параметр; если явно не задан, по умолчанию используется splitByNonAlpha. const String
  • n — Имеет значение только в том случае, если аргумент tokenizer равен ngrams: необязательный параметр, определяющий длину n-грамм. Если явно не задан, по умолчанию используется 3. const UInt8
  • separators — Имеет значение только в том случае, если аргумент tokenizer равен split: необязательный параметр, определяющий строки-разделители. Если явно не задан, по умолчанию используется [' ']. const Array(String)
  • min_length — Имеет значение только в том случае, если аргумент tokenizer равен sparseGrams: необязательный параметр, определяющий минимальную длину граммы; значение по умолчанию — 3. const UInt8
  • max_length — Имеет значение только в том случае, если аргумент tokenizer равен sparseGrams: необязательный параметр, определяющий максимальную длину граммы; значение по умолчанию — 100. const UInt8
  • min_cutoff_length — Имеет значение только в том случае, если аргумент tokenizer равен sparseGrams: необязательный параметр, определяющий минимальную длину отсечения. const UInt8
Возвращаемое значение Возвращает массив токенов, полученный из входной строки. Array Примеры Токенизатор по умолчанию
Query
SELECT tokens('test1,;\\\\ test2,;\\\\ test3,;\\\\   test4') AS tokens;
Response
['test1','test2','test3','test4']
Токенизатор n-грамм
Query
SELECT tokens('abc def', 'ngrams', 3) AS tokens;
Response
['abc','bc ','c d',' de','def']

tokensForLikePattern

Добавленный в: v26.3.0 Разбивает строку шаблона LIKE на токены с помощью указанного токенизатора. В отличие от функции tokens, эта функция учитывает семантику шаблонов LIKE (например, подстановочные символы в начале и в конце) и применяет правила, специфичные для токенизатора, чтобы выделять значимые токены для сопоставления с шаблоном. Она поддерживает те же наборы аргументов, что и функция tokens; дополнительные аргументы после tokenizer интерпретируются в соответствии с выбранным токенизатором (например, n для ngrams, separators для splitByString и min_length / max_length [/ min_cutoff_length] для sparseGrams). Эта функция в первую очередь предназначена для отладки и тестирования и используется внутри системы для анализа поведения токенизации шаблонов LIKE. Синтаксис
tokensForLikePattern(value[, tokenizer[, tokenizer_specific_arguments...]])
Аргументы
  • value — Входная строка. String или FixedString
  • tokenizer — Используемый токенизатор. Допустимые аргументы: splitByNonAlpha, splitByString, asciiCJK, ngrams, sparseGrams и array. Необязательный параметр; если он не задан явно, по умолчанию используется splitByNonAlpha. const String
  • n — Актуально только для аргумента tokenizer со значением ngrams: необязательный параметр, определяющий длину n-грамм. Если он не задан явно, по умолчанию используется 3. const UInt8
  • separators — Актуально только для аргумента tokenizer со значением split: необязательный параметр, определяющий строки-разделители. Если он не задан явно, по умолчанию используется [' ']. const Array(String)
  • min_length — Актуально только для аргумента tokenizer со значением sparseGrams: необязательный параметр, определяющий минимальную длину граммы; по умолчанию — 3. const UInt8
  • max_length — Актуально только для аргумента tokenizer со значением sparseGrams: необязательный параметр, определяющий максимальную длину граммы; по умолчанию — 100. const UInt8
  • min_cutoff_length — Актуально только для аргумента tokenizer со значением sparseGrams: необязательный параметр, определяющий минимальную длину отсечения. const UInt8
Возвращаемое значение Возвращает массив токенов, полученный из входной строки. Array Примеры Токенизатор по умолчанию
Query
SELECT tokensForLikePattern('%test1,test2,test3%') AS tokens;
Response
['test2']
Последнее изменение 10 июня 2026 г.