Dizi(t) 

Bir dizi T- tip öğeleri. T herhangi bir veri türü, bir dizi dahil edilebilir.

Bir dizi oluşturma 

Bir dizi oluşturmak için bir işlev kullanabilirsiniz:

array(T)

Köşeli parantez de kullanabilirsiniz.

[]

Bir dizi oluşturma örneği:

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)       │
└───────┴────────────────────┘

Veri türleri ile çalışma 

Anında bir dizi oluştururken, ClickHouse bağımsız değişken türünü otomatik olarak listelenen tüm bağımsız değişkenleri depolayabilen en dar veri türü olarak tanımlar. Eğer herhangi bir Nullable veya edebi NULL değerler, bir dizi öğesinin türü de olur Nullable.

ClickHouse veri türünü belirleyemedi, bir özel durum oluşturur. Örneğin, aynı anda dizeler ve sayılarla bir dizi oluşturmaya çalışırken bu olur (SELECT array(1, 'a')).

Otomatik veri türü algılama örnekleri:

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

Uyumsuz veri türleri dizisi oluşturmaya çalışırsanız, ClickHouse bir özel durum atar:

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.

Orijinal makale

Rating: 3.8 - 10 votes

Was this content helpful?
★★★★☆