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