Array(t) 

Un tableau de Tles éléments de type. T peut être n'importe quel type de données, y compris un tableau.

La création d'un Tableau 

Vous pouvez utiliser une fonction pour créer un tableau:

array(T)

Vous pouvez également utiliser des crochets.

[]

Exemple de création d'un tableau:

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

Utilisation de Types de données 

Lors de la création d'un tableau à la volée, ClickHouse définit automatiquement le type d'argument comme le type de données le plus étroit pouvant stocker tous les arguments listés. S'il y a des Nullable ou littéral NULL les valeurs, le type d'un élément de tableau devient également Nullable.

Si ClickHouse n'a pas pu déterminer le type de données, il génère une exception. Par exemple, cela se produit lorsque vous essayez de créer un tableau avec des chaînes et des nombres simultanément (SELECT array(1, 'a')).

Exemples de détection automatique de type de données:

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

Si vous essayez de créer un tableau de types de données incompatibles, ClickHouse lève une exception:

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.

Article Original

Rating: 4.5 - 8 votes

Was this content helpful?
★★★★★