ClickHouse/docs/ja/sql_reference/data_types/array.md
2020-04-04 12:15:31 +03:00

2.5 KiB

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 51 配列(T)

配列(t)

の配列 T-タイプのアイテム。 T 配列を含む任意のデータ型を指定できます。

配列の作成

関数を使用して配列を作成できます:

array(T)

角括弧を使用することもできます。

[]

配列の作成例:

SELECT array(1, 2) AS x, toTypeName(x)
┌─x─────┬─toTypeName(array(1, 2))─┐
│ [1,2] │ Array(UInt8)            │
└───────┴─────────────────────────┘
SELECT [1, 2] AS x, toTypeName(x)
┌─x─────┬─toTypeName([1, 2])─┐
│ [1,2] │ Array(UInt8)       │
└───────┴────────────────────┘

データ型の操作

その場で配列を作成するとき、clickhouseは自動的にすべてのリストされた引数を格納できる最も狭いデータ型として引数の型を定義します。 あれば Nullable またはリテラル NULL 値は、配列要素の型も次のようになります Nullable.

ClickHouseでデータ型を特定できなかった場合は、例外が生成されます。 たとえば、文字列と数値を同時に持つ配列を作成しようとすると、これが発生します (SELECT array(1, 'a')).

自動データ型検出の例:

SELECT array(1, 2, NULL) AS x, toTypeName(x)
┌─x──────────┬─toTypeName(array(1, 2, NULL))─┐
│ [1,2,NULL] │ Array(Nullable(UInt8))        │
└────────────┴───────────────────────────────┘

互換性のないデータ型の配列を作成しようとすると、clickhouseは例外をスローします:

SELECT array(1, 'a')
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.

元の記事