Catégories :

Fonctions de données semi-structurées et structurées (conversion)

AS_ARRAY

Convertit une valeur VARIANT en tableau.

Voir aussi :

AS_<type_objet> , AS_OBJECT

Syntaxe

AS_ARRAY( <variant_expr> )
Copy

Arguments

variant_expr

Une expression qui correspond à une valeur de type VARIANT.

Notes sur l’utilisation

  • Si variant_expr ne contient pas de valeur de type ARRAY, la fonction renvoie NULL.

  • Cette fonction ne prend pas en charge un type structuré comme argument d’entrée.

Exemples

Ceci montre comment utiliser la fonction :

Créer une table et des données :

CREATE TABLE multiple_types (
    array1 VARIANT,
    array2 VARIANT,
    boolean1 VARIANT,
    char1 VARIANT,
    varchar1 VARIANT,
    decimal1 VARIANT,
    double1 VARIANT,
    integer1 VARIANT,
    object1 VARIANT
    );
INSERT INTO multiple_types 
     (array1, array2, boolean1, char1, varchar1, 
      decimal1, double1, integer1, object1)
   SELECT 
     TO_VARIANT(TO_ARRAY('Example')), 
     TO_VARIANT(ARRAY_CONSTRUCT('Array-like', 'example')), 
     TO_VARIANT(TRUE), 
     TO_VARIANT('X'), 
     TO_VARIANT('I am a real character'), 
     TO_VARIANT(1.23::DECIMAL(6, 3)),
     TO_VARIANT(3.21::DOUBLE),
     TO_VARIANT(15),
     TO_VARIANT(TO_OBJECT(PARSE_JSON('{"Tree": "Pine"}')))
     ;
Copy

Maintenant, exécutez la requête. Les vrais tableaux stockés en tant que valeurs VARIANT sont reconvertis en valeurs ARRAY. Cependant, la valeur de la colonne object1, qui n’était pas un vrai ARRAY, est convertie en NULL.

SELECT 
       AS_ARRAY(array1) AS "ARRAY1",
       AS_ARRAY(array2) AS "ARRAY2",
       AS_OBJECT(object1) AS "OBJECT",
       AS_ARRAY(object1) AS "OBJECT AS ARRAY"
  FROM multiple_types;
+-------------+-----------------+------------------+-----------------+
| ARRAY1      | ARRAY2          | OBJECT           | OBJECT AS ARRAY |
|-------------+-----------------+------------------+-----------------|
| [           | [               | {                | NULL            |
|   "Example" |   "Array-like", |   "Tree": "Pine" |                 |
| ]           |   "example"     | }                |                 |
|             | ]               |                  |                 |
+-------------+-----------------+------------------+-----------------+
Copy