2020-11-27 19:37:44 +00:00
---
toc_priority: 68
toc_title: Функции для работы с кортежами
---
# Функции для работы с кортежами {#tuple-functions}
2020-11-28 11:38:57 +00:00
## tuple {#tuple}
2020-11-27 19:37:44 +00:00
Функция, позволяющая сгруппировать несколько столбцов.
Для столбцов, имеющих типы T1, T2, … возвращает кортеж типа Tuple(T1, T2, …), содержащий эти столбцы. Выполнение функции ничего не стоит.
Кортежи обычно используются как промежуточное значение в качестве аргумента операторов IN, или для создания списка формальных параметров лямбда-функций. Кортежи не могут быть записаны в таблицу.
2020-11-28 11:38:57 +00:00
С помощью функции реализуется оператор `(x, y, …)` .
2020-11-27 19:37:44 +00:00
**Синтаксис**
``` sql
tuple(x, y, …)
```
2020-11-28 11:38:57 +00:00
## tupleElement {#tupleelement}
2020-11-27 19:37:44 +00:00
Функция, позволяющая достать столбец из кортежа.
N - индекс столбца начиная с 1. N должно быть константой. N должно быть целым строго положительным числом не большим размера кортежа.
Выполнение функции ничего не стоит.
2020-11-28 11:38:57 +00:00
С помощью функции реализуется оператор `x.N` .
2020-11-27 19:37:44 +00:00
**Синтаксис**
``` sql
tupleElement(tuple, n)
```
2020-11-28 11:38:57 +00:00
## untuple {#untuple}
2020-11-27 19:37:44 +00:00
Выполняет синтаксическую подстановку элементов [кортежа ](../../sql-reference/data-types/tuple.md#tuplet1-t2 ) в место вызова.
**Синтаксис**
``` sql
untuple(x)
```
Чтобы пропустить некоторые столбцы в результате запроса, вы можете использовать выражение `EXCEPT` .
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-11-27 19:37:44 +00:00
2021-03-13 18:18:45 +00:00
- `x` — функция `tuple` , столбец или кортеж элементов. [Tuple ](../../sql-reference/data-types/tuple.md ).
2020-11-27 19:37:44 +00:00
**Возвращаемое значение**
- Нет.
**Примеры**
Входная таблица:
``` text
┌─key─┬─v1─┬─v2─┬─v3─┬─v4─┬─v5─┬─v6────────┐
│ 1 │ 10 │ 20 │ 40 │ 30 │ 15 │ (33,'ab') │
│ 2 │ 25 │ 65 │ 70 │ 40 │ 6 │ (44,'cd') │
│ 3 │ 57 │ 30 │ 20 │ 10 │ 5 │ (55,'ef') │
│ 4 │ 55 │ 12 │ 7 │ 80 │ 90 │ (66,'gh') │
│ 5 │ 30 │ 50 │ 70 │ 25 │ 55 │ (77,'kl') │
└─────┴────┴────┴────┴────┴────┴───────────┘
```
Пример использования столбца типа `Tuple` в качестве параметра функции `untuple` :
Запрос:
``` sql
SELECT untuple(v6) FROM kv;
```
Результат:
``` text
┌─_ut_1─┬─_ut_2─┐
│ 33 │ ab │
│ 44 │ cd │
│ 55 │ ef │
│ 66 │ gh │
│ 77 │ kl │
└───────┴───────┘
```
Пример использования выражения `EXCEPT` :
Запрос:
``` sql
SELECT untuple((* EXCEPT (v2, v3),)) FROM kv;
```
Результат:
``` text
┌─key─┬─v1─┬─v4─┬─v5─┬─v6────────┐
│ 1 │ 10 │ 30 │ 15 │ (33,'ab') │
│ 2 │ 25 │ 40 │ 6 │ (44,'cd') │
│ 3 │ 57 │ 10 │ 5 │ (55,'ef') │
│ 4 │ 55 │ 80 │ 90 │ (66,'gh') │
│ 5 │ 30 │ 25 │ 55 │ (77,'kl') │
└─────┴────┴────┴────┴───────────┘
```
**Смотрите также**
- [Tuple ](../../sql-reference/data-types/tuple.md )