ClickHouse/docs/ru/sql-reference/functions/splitting-merging-functions.md

6.9 KiB
Raw Blame History

toc_priority toc_title
47 Функции разбиения и слияния строк и массивов

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

splitByChar(separator, s)

Разбивает строку на подстроки, используя в качестве разделителя separator. separator должен быть константной строкой из ровно одного символа. Возвращается массив выделенных подстрок. Могут выделяться пустые подстроки, если разделитель идёт в начале или в конце строки, или если идёт более одного разделителя подряд.

Синтаксис

splitByChar(separator, s)

Аргументы

  • separator — разделитель, состоящий из одного символа. String.
  • s — разбиваемая строка. String.

Возвращаемые значения

Возвращает массив подстрок. Пустая подстрока, может быть возвращена, когда:

  • Разделитель находится в начале или конце строки;
  • Задано несколько последовательных разделителей;
  • Исходная строка s пуста.

Тип: Array(String).

Пример

SELECT splitByChar(',', '1,2,3,abcde');
┌─splitByChar(',', '1,2,3,abcde')─┐
│ ['1','2','3','abcde']           │
└─────────────────────────────────┘

splitByString(separator, s)

Разбивает строку на подстроки, разделенные строкой. В качестве разделителя использует константную строку separator, которая может состоять из нескольких символов. Если строка separator пуста, то функция разделит строку s на массив из символов.

Синтаксис

splitByString(separator, s)

Аргументы

  • separator — разделитель. String.
  • s — разбиваемая строка. String.

Возвращаемые значения

Возвращает массив подстрок. Пустая подстрока, может быть возвращена, когда:

  • Разделитель находится в начале или конце строки;
  • Задано несколько последовательных разделителей;
  • Исходная строка s пуста.

Тип: Array(String).

Примеры

SELECT splitByString(', ', '1, 2 3, 4,5, abcde');
┌─splitByString(', ', '1, 2 3, 4,5, abcde')─┐
│ ['1','2 3','4,5','abcde']                 │
└───────────────────────────────────────────┘
SELECT splitByString('', 'abcde');
┌─splitByString('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘

splitByRegexp(regexp, s)

Разбивает строку на подстроки, разделенные регулярным выражением. В качестве разделителя используется строка регулярного выражения regexp. Если regexp пустая, функция разделит строку s на массив одиночных символов. Если для регулярного выражения совпадения не найдено, строка s не будет разбита.

Синтаксис

splitByRegexp(regexp, s)

Аргументы

  • regexp — регулярное выражение. Константа. String или FixedString.
  • s — разбиваемая строка. String.

Возвращаемые значения

Возвращает массив выбранных подстрок. Пустая подстрока может быть возвращена, если:

  • Непустое совпадение с регулярным выражением происходит в начале или конце строки;
  • Имеется несколько последовательных совпадений c непустым регулярным выражением;
  • Исходная строка s пуста, а регулярное выражение не пустое.

Тип: Array(String).

Примеры

Запрос:

SELECT splitByRegexp('\\d+', 'a12bc23de345f');

Результат:

┌─splitByRegexp('\\d+', 'a12bc23de345f')─┐
│ ['a','bc','de','f']                    │
└────────────────────────────────────────┘

Запрос:

SELECT splitByRegexp('', 'abcde');

Результат:

┌─splitByRegexp('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘

arrayStringConcat(arr[, separator])

Склеивает строки, перечисленные в массиве, с разделителем separator. separator - необязательный параметр, константная строка, по умолчанию равен пустой строке. Возвращается строка.

alphaTokens(s)

Выделяет подстроки из подряд идущих байт из диапазонов a-z и A-Z. Возвращается массив выделенных подстрок.

Пример:

SELECT alphaTokens('abca1abc');
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc']          │
└─────────────────────────┘