DOCSUP-3922: Document the untuple() function (#17110)

* Create tuple-functions.md

Выполнил описание функции untuple на английском языке.

* Update tuple-functions.md

Подкорректировал описание.

* Update tuple-functions.md

Подкорректировал описание.

* Update tuple-functions.md

Внес небольшие поправки.

* Translate untuple-functions.md

Выполнил перевод на русский язык.

* Update tuple-functions.md

Внес поправки в английскую и русскую версии.

* Update tuple-functions.md

Внес поправки.

* Update tuple-functions.md and in-functions.md

Добавил функции и ссылки.

Co-authored-by: Dmitriy <sevirov@yandex-team.ru>
This commit is contained in:
sevirov 2020-11-27 22:37:44 +03:00 committed by GitHub
parent aaaa7ad59f
commit 59b92c7464
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 253 additions and 1 deletions

View File

@ -15,10 +15,18 @@ A function that allows grouping multiple columns.
For columns with the types T1, T2, …, it returns a Tuple(T1, T2, …) type tuple containing these columns. There is no cost to execute the function.
Tuples are normally used as intermediate values for an argument of IN operators, or for creating a list of formal parameters of lambda functions. Tuples cant be written to a table.
**See Also**
- [Tuple](../../sql-reference/functions/tuple-functions.md#tuple)
## tupleElement(tuple, n), operator x.N {#tupleelementtuple-n-operator-x-n}
A function that allows getting a column from a tuple.
N is the column index, starting from 1. N must be a constant. N must be a constant. N must be a strict postive integer no greater than the size of the tuple.
There is no cost to execute the function.
**See Also**
- [TupleElement](../../sql-reference/functions/tuple-functions.md#tupleelement)
[Original article](https://clickhouse.tech/docs/en/query_language/functions/in_functions/) <!--hide-->

View File

@ -1,5 +1,5 @@
---
toc_priority: 66
toc_priority: 67
toc_title: Other
---

View File

@ -0,0 +1,118 @@
---
toc_priority: 66
toc_title: Tuples
---
# Functions for Working with Tuples {#tuple-functions}
## Tuple {#tuple}
A function that allows grouping multiple columns.
For columns with the types T1, T2, …, it returns a Tuple(T1, T2, …) type tuple containing these columns. There is no cost to execute the function.
Tuples are normally used as intermediate values for an argument of IN operators, or for creating a list of formal parameters of lambda functions. Tuples cant be written to a table.
**Syntax**
``` sql
tuple(x, y, …)
```
**See Also**
- [Operator (x, y, …)](../../sql-reference/functions/in-functions.md#tuplex-y-operator-x-y)
## TupleElement {#tupleelement}
A function that allows getting a column from a tuple.
N is the column index, starting from 1. N must be a constant. N must be a constant. N must be a strict postive integer no greater than the size of the tuple.
There is no cost to execute the function.
**Syntax**
``` sql
tupleElement(tuple, n)
```
**See Also**
- [Operator x.N](../../sql-reference/functions/in-functions.md#tupleelementtuple-n-operator-x-n)
## Untuple {#untuple}
Performs syntactic substitution of [tuple](../../sql-reference/data-types/tuple.md#tuplet1-t2) elements in the call location.
**Syntax**
``` sql
untuple(x)
```
You can use the `EXCEPT` expression to skip columns as a result of the query.
**Parameters**
- `x` - A `tuple` function, column, or tuple of elements. [Tuple](../../sql-reference/data-types/tuple.md).
**Returned value**
- None.
**Examples**
Input table:
``` 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') │
└─────┴────┴────┴────┴────┴────┴───────────┘
```
Example of using a `Tuple`-type column as the `untuple` function parameter:
Query:
``` sql
SELECT untuple(v6) FROM kv;
```
Result:
``` text
┌─_ut_1─┬─_ut_2─┐
│ 33 │ ab │
│ 44 │ cd │
│ 55 │ ef │
│ 66 │ gh │
│ 77 │ kl │
└───────┴───────┘
```
Example of using an `EXCEPT` expression:
Query:
``` sql
SELECT untuple((* EXCEPT (v2, v3),)) FROM kv;
```
Result:
``` 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') │
└─────┴────┴────┴────┴───────────┘
```
**See Also**
- [Tuple](../../sql-reference/data-types/tuple.md)
[Original article](https://clickhouse.tech/docs/en/sql-reference/functions/tuple-functions/) <!--hide-->

View File

@ -15,10 +15,18 @@ toc_title: "\u0424\u0443\u043d\u043a\u0446\u0438\u0438\u0020\u0434\u043b\u044f\u
Для столбцов, имеющих типы T1, T2, … возвращает кортеж типа Tuple(T1, T2, …), содержащий эти столбцы. Выполнение функции ничего не стоит.
Кортежи обычно используются как промежуточное значение в качестве аргумента операторов IN, или для создания списка формальных параметров лямбда-функций. Кортежи не могут быть записаны в таблицу.
**Смотрите также**
- [Tuple](../../sql-reference/functions/tuple-functions.md#tuple)
## tupleElement(tuple, n), оператор x.N {#tupleelementtuple-n-operator-x-n}
Функция, позволяющая достать столбец из кортежа.
N - индекс столбца начиная с 1. N должно быть константой. N должно быть целым строго положительным числом не большим размера кортежа.
Выполнение функции ничего не стоит.
**Смотрите также**
- [TupleElement](../../sql-reference/functions/tuple-functions.md#tupleelement)
[Оригинальная статья](https://clickhouse.tech/docs/ru/query_language/functions/in_functions/) <!--hide-->

View File

@ -0,0 +1,118 @@
---
toc_priority: 68
toc_title: Функции для работы с кортежами
---
# Функции для работы с кортежами {#tuple-functions}
## Tuple {#tuple}
Функция, позволяющая сгруппировать несколько столбцов.
Для столбцов, имеющих типы T1, T2, … возвращает кортеж типа Tuple(T1, T2, …), содержащий эти столбцы. Выполнение функции ничего не стоит.
Кортежи обычно используются как промежуточное значение в качестве аргумента операторов IN, или для создания списка формальных параметров лямбда-функций. Кортежи не могут быть записаны в таблицу.
**Синтаксис**
``` sql
tuple(x, y, …)
```
**Смотрите также**
- [Оператор (x, y, …)](../../sql-reference/functions/in-functions.md#tuplex-y-operator-x-y)
## TupleElement {#tupleelement}
Функция, позволяющая достать столбец из кортежа.
N - индекс столбца начиная с 1. N должно быть константой. N должно быть целым строго положительным числом не большим размера кортежа.
Выполнение функции ничего не стоит.
**Синтаксис**
``` sql
tupleElement(tuple, n)
```
**Смотрите также**
- [Оператор x.N](../../sql-reference/functions/in-functions.md#tupleelementtuple-n-operator-x-n)
## Untuple {#untuple}
Выполняет синтаксическую подстановку элементов [кортежа](../../sql-reference/data-types/tuple.md#tuplet1-t2) в место вызова.
**Синтаксис**
``` sql
untuple(x)
```
Чтобы пропустить некоторые столбцы в результате запроса, вы можете использовать выражение `EXCEPT`.
**Параметры**
- `x` - функция `tuple`, столбец или кортеж элементов. [Tuple](../../sql-reference/data-types/tuple.md).
**Возвращаемое значение**
- Нет.
**Примеры**
Входная таблица:
``` 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)
[Оригинальная статья](https://clickhouse.tech/docs/ru/sql-reference/functions/tuple-functions/) <!--hide-->