- Catégories :
Fonctions de conversion , Fonctions de données semi-structurées et structurées (tableau/objet)
TO_ARRAY¶
Convertit lâexpression dâentrĂ©e en une valeur ARRAY.
Syntaxe¶
TO_ARRAY( <expr> )
Arguments¶
expr
Une expression de tout type de données.
Renvoie¶
Cette fonction renvoie une valeur de type ARRAY ou NULL :
Si lâentrĂ©e est un ARRAY ou un VARIANT contenant une valeur ARRAY, la valeur est retournĂ©e inchangĂ©e.
Si
expr
est une valeur NULL ou JSON null, la fonction renvoie NULL.Pour toute autre valeur, la valeur retournée est un tableau à un seul élément qui contient cette valeur.
Notes sur lâutilisation¶
Pour crĂ©er un tableau contenant plus dâun Ă©lĂ©ment, vous pouvez utiliser ARRAY_CONSTRUCT ou STRTOK_TO_ARRAY.
Exemples¶
Créez une table et insérez des données en appelant la fonction TO_ARRAY :
CREATE OR REPLACE TABLE array_demo_2 (
ID INTEGER,
array1 ARRAY,
array2 ARRAY);
INSERT INTO array_demo_2 (ID, array1, array2)
SELECT 1, TO_ARRAY(1), TO_ARRAY(3);
SELECT * FROM array_demo_2;
+----+--------+--------+
| ID | ARRAY1 | ARRAY2 |
|----+--------+--------|
| 1 | [ | [ |
| | 1 | 3 |
| | ] | ] |
+----+--------+--------+
ExĂ©cutez une requĂȘte qui montre les tableaux Ă Ă©lĂ©ment unique créés lors de lâinsertion et le rĂ©sultat de lâappel Ă ARRAY_CAT pour concatĂ©ner les deux tableaux :
SELECT array1, array2, ARRAY_CAT(array1, array2)
FROM array_demo_2;
+--------+--------+---------------------------+
| ARRAY1 | ARRAY2 | ARRAY_CAT(ARRAY1, ARRAY2) |
|--------+--------+---------------------------|
| [ | [ | [ |
| 1 | 3 | 1, |
| ] | ] | 3 |
| | | ] |
+--------+--------+---------------------------+
Cet exemple montre que TO_ARRAY convertit une expression dâentrĂ©e sous forme de chaĂźne en un tableau Ă un seul Ă©lĂ©ment, mĂȘme lorsque lâexpression dâentrĂ©e comprend des dĂ©limiteurs (tels que des virgules) :
SELECT TO_ARRAY('snowman,snowball,snowcone') AS to_array_result;
+-------------------------------+
| TO_ARRAY_RESULT |
|-------------------------------|
| [ |
| "snowman,snowball,snowcone" |
| ] |
+-------------------------------+
Pour convertir la mĂȘme expression dâentrĂ©e de chaĂźne en un tableau Ă Ă©lĂ©ments multiples, vous pouvez utiliser la fonction STRTOK_TO_ARRAY :
SELECT STRTOK_TO_ARRAY('snowman,snowball,snowcone', ',') AS strtok_to_array_result;
+------------------------+
| STRTOK_TO_ARRAY_RESULT |
|------------------------|
| [ |
| "snowman", |
| "snowball", |
| "snowcone" |
| ] |
+------------------------+