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> ) 
Copy

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; 
Copy
+----+--------+--------+ | 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; 
Copy
+--------+--------+---------------------------+ | 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; 
Copy
+-------------------------------+ | 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; 
Copy
+------------------------+ | STRTOK_TO_ARRAY_RESULT | |------------------------| | [ | | "snowman", | | "snowball", | | "snowcone" | | ] | +------------------------+