mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-19 23:10:50 +00:00
2d2bc052e1
* Typo fix. * Links fix. * Fixed links in docs. * More fixes. * docs/en: cleaning some files * docs/en: cleaning data_types * docs/en: cleaning database_engines * docs/en: cleaning development * docs/en: cleaning getting_started * docs/en: cleaning interfaces * docs/en: cleaning operations * docs/en: cleaning query_lamguage * docs/en: cleaning en * docs/ru: cleaning data_types * docs/ru: cleaning index * docs/ru: cleaning database_engines * docs/ru: cleaning development * docs/ru: cleaning general * docs/ru: cleaning getting_started * docs/ru: cleaning interfaces * docs/ru: cleaning operations * docs/ru: cleaning query_language * docs: cleaning interfaces/http * Update docs/en/data_types/array.md decorated ``` Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/nyc_taxi.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/ontime.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/interfaces/formats.md fixed error Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/custom_partitioning_key.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/dicts/external_dicts_dict_sources.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/date_time_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/jdbc.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * docs: fixed error * docs: fixed error
67 lines
2.9 KiB
Markdown
67 lines
2.9 KiB
Markdown
# Array(T) {#data_type-array}
|
||
|
||
Массив из элементов типа `T`.
|
||
|
||
`T` может любым, в том числе, массивом. Таким образом поддержаны многомерные массивы.
|
||
|
||
## Создание массива
|
||
|
||
Массив можно создать с помощью функции:
|
||
|
||
```sql
|
||
array(T)
|
||
```
|
||
|
||
Также можно использовать квадратные скобки
|
||
|
||
```sql
|
||
[]
|
||
```
|
||
|
||
Пример создания массива:
|
||
```sql
|
||
SELECT array(1, 2) AS x, toTypeName(x)
|
||
```
|
||
```text
|
||
┌─x─────┬─toTypeName(array(1, 2))─┐
|
||
│ [1,2] │ Array(UInt8) │
|
||
└───────┴─────────────────────────┘
|
||
```
|
||
```sql
|
||
SELECT [1, 2] AS x, toTypeName(x)
|
||
```
|
||
```text
|
||
┌─x─────┬─toTypeName([1, 2])─┐
|
||
│ [1,2] │ Array(UInt8) │
|
||
└───────┴────────────────────┘
|
||
```
|
||
|
||
## Особенности работы с типами данных
|
||
|
||
При создании массива "на лету" ClickHouse автоматически определяет тип аргументов как наиболее узкий тип данных, в котором можно хранить все перечисленные аргументы. Если среди аргументов есть [NULL](../query_language/syntax.md#null-literal) или аргумент типа [Nullable](nullable.md#data_type-nullable), то тип элементов массива — [Nullable](nullable.md).
|
||
|
||
Если ClickHouse не смог подобрать тип данных, то он сгенерирует исключение. Это произойдёт, например, при попытке создать массив одновременно со строками и числами `SELECT array(1, 'a')`.
|
||
|
||
Примеры автоматического определения типа данных:
|
||
|
||
```sql
|
||
SELECT array(1, 2, NULL) AS x, toTypeName(x)
|
||
```
|
||
```text
|
||
┌─x──────────┬─toTypeName(array(1, 2, NULL))─┐
|
||
│ [1,2,NULL] │ Array(Nullable(UInt8)) │
|
||
└────────────┴───────────────────────────────┘
|
||
```
|
||
|
||
Если попытаться создать массив из несовместимых типов данных, то ClickHouse выбросит исключение:
|
||
|
||
```sql
|
||
SELECT array(1, 'a')
|
||
```
|
||
```text
|
||
Received exception from server (version 1.1.54388):
|
||
Code: 386. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: There is no supertype for types UInt8, String because some of them are String/FixedString and some of them are not.
|
||
```
|
||
|
||
[Оригинальная статья](https://clickhouse.yandex/docs/ru/data_types/array/) <!--hide-->
|