2020-03-20 18:20:59 +00:00
# Функции разбиения и слияния строк и массивов {#funktsii-razbieniia-i-sliianiia-strok-i-massivov}
## splitByChar(separator, s) {#splitbycharseparator-s}
2017-03-12 17:58:51 +00:00
2020-08-31 11:38:32 +00:00
Разбивает строку на подстроки, используя в качестве разделителя `separator` .
2017-03-12 17:58:51 +00:00
separator должен быть константной строкой из ровно одного символа.
Возвращается массив выделенных подстрок. Могут выделяться пустые подстроки, если разделитель идёт в начале или в конце строки, или если идёт более одного разделителя подряд.
2020-08-31 11:38:32 +00:00
**Синтаксис**
2020-03-20 18:20:59 +00:00
2020-08-31 11:38:32 +00:00
``` sql
splitByChar(< separator > , < s > )
```
2017-03-12 17:58:51 +00:00
2020-08-31 11:38:32 +00:00
**Параметры**
2020-03-20 18:20:59 +00:00
2020-08-31 11:38:32 +00:00
- `separator` — Разделитель, состоящий из одного символа. [String ](../../sql-reference/data-types/string.md ).
- `s` — Разбиваемая строка. [String ](../../sql-reference/data-types/string.md ).
2017-03-12 17:58:51 +00:00
2020-08-31 11:38:32 +00:00
**Возвращаемые значения**
2020-03-20 18:20:59 +00:00
2020-08-31 11:38:32 +00:00
Возвращает массив подстрок. Пустая подстрока, может быть возвращена, когда:
2018-09-21 15:13:45 +00:00
2020-08-31 11:38:32 +00:00
- Разделитель находится в начале или конце строки;
- Задано несколько последовательных разделителей;
- Исходная строка `s` пуста.
Type: [Array ](../../sql-reference/data-types/array.md ) of [String ](../../sql-reference/data-types/string.md ).
**Пример**
2018-09-21 15:13:45 +00:00
2020-03-20 18:20:59 +00:00
``` sql
2020-08-31 11:38:32 +00:00
SELECT splitByChar(',', '1,2,3,abcde')
2019-09-23 15:31:46 +00:00
```
2018-09-21 15:13:45 +00:00
2020-03-20 18:20:59 +00:00
``` text
2020-08-31 11:38:32 +00:00
┌─splitByChar(',', '1,2,3,abcde')─┐
│ ['1','2','3','abcde'] │
└─────────────────────────────────┘
2018-10-16 10:47:17 +00:00
```
2020-03-20 18:20:59 +00:00
2020-08-31 11:38:32 +00:00
## splitByString(separator, s) {#splitbystringseparator-s}
2020-07-19 09:33:50 +00:00
2020-08-31 11:38:32 +00:00
Разбивает строку на подстроки, разделенные строкой. В качестве разделителя использует константную строку `separator` , которая может состоять из нескольких символов. Если строка `separator` пуста, то функция разделит строку `s` на массив из символов.
2020-07-19 09:33:50 +00:00
2020-08-31 11:38:32 +00:00
**Синтаксис**
2020-07-19 09:33:50 +00:00
``` sql
2020-08-31 11:38:32 +00:00
splitByString(separator, s)
2020-07-19 09:33:50 +00:00
```
2020-08-31 11:38:32 +00:00
**Параметры**
2020-07-19 09:33:50 +00:00
2020-08-31 11:38:32 +00:00
- `separator` — Разделитель. [String ](../../sql-reference/data-types/string.md ).
- `s` — Разбиваемая строка. [String ](../../sql-reference/data-types/string.md ).
2020-07-19 09:33:50 +00:00
**Возвращаемые значения**
2020-08-31 11:38:32 +00:00
Возвращает массив подстрок. Пустая подстрока, может быть возвращена, когда:
- Разделитель находится в начале или конце строки;
- Задано несколько последовательных разделителей;
- Исходная строка `s` пуста.
2020-07-19 09:33:50 +00:00
2020-08-31 11:38:32 +00:00
Type: [Array ](../../sql-reference/data-types/array.md ) of [String ](../../sql-reference/data-types/string.md ).
2020-07-19 09:33:50 +00:00
2020-08-31 11:38:32 +00:00
**Примеры**
2020-07-19 09:33:50 +00:00
2020-08-31 11:38:32 +00:00
``` sql
SELECT splitByString(', ', '1, 2 3, 4,5, abcde')
```
2020-07-19 09:33:50 +00:00
2020-08-31 11:38:32 +00:00
``` text
┌─splitByString(', ', '1, 2 3, 4,5, abcde')─┐
│ ['1','2 3','4,5','abcde'] │
└───────────────────────────────────────────┘
```
2020-07-19 09:33:50 +00:00
``` sql
2020-08-31 11:38:32 +00:00
SELECT splitByString('', 'abcde')
2020-07-19 09:33:50 +00:00
```
2020-08-31 11:38:32 +00:00
``` text
┌─splitByString('', 'abcde')─┐
│ ['a','b','c','d','e'] │
└────────────────────────────┘
```
## arrayStringConcat(arr\[, separator\]) {#arraystringconcatarr-separator}
Склеивает строки, перечисленные в массиве, с разделителем separator.
separator - необязательный параметр, константная строка, по умолчанию равен пустой строке.
Возвращается строка.
## alphaTokens(s) {#alphatokenss}
Выделяет подстроки из подряд идущих байт из диапазонов a-z и A-Z.
Возвращается массив выделенных подстрок.
**Пример:**
``` sql
SELECT alphaTokens('abca1abc')
```
2020-07-19 09:33:50 +00:00
``` text
2020-08-31 11:38:32 +00:00
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc'] │
└─────────────────────────┘
2020-07-19 09:33:50 +00:00
```
2020-08-31 11:38:32 +00:00
2020-01-30 10:34:55 +00:00
[Оригинальная статья ](https://clickhouse.tech/docs/ru/query_language/functions/splitting_merging_functions/ ) <!--hide-->