- 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" |
| ] |
+------------------------+