Catégories :

Fonctions de données semi-structurées et structurées (tableau/objet)

ARRAY_APPEND

Renvoie un tableau contenant tous les éléments du tableau source ainsi que le nouvel élément. Le nouvel élément est situé à la fin du tableau.

Voir aussi :

ARRAY_INSERT , ARRAY_PREPEND

Syntaxe

ARRAY_APPEND( <array> , <new_element> )
Copy

Arguments

array

Le tableau source.

new_element

L’élément à ajouter. Le type de l’élément dépend du type du tableau :

  • Si array est un tableau semi-structuré, l’élément peut être presque de n’importe quel type de données. Le type de données peut être différent du (des) type(s) de données des éléments existants dans le tableau.

  • Si array est un tableau structuré, le type du nouvel élément doit être coercible (pouvoir être contraint à se transformer) dans le type du tableau.

Renvoie

Le type de données de la valeur renvoyée est ARRAY.

Lorsque vous transmettez un tableau structuré à la fonction, celle-ci renvoie un tableau structuré du même type.

Si le tableau source est NULL, la fonction renvoie NULL.

Exemples

Les exemples utilisent la table suivante avec une colonne ARRAY :

CREATE OR REPLACE TABLE array_append_examples (array_column ARRAY);

INSERT INTO array_append_examples (array_column)
  SELECT ARRAY_CONSTRUCT(1, 2, 3);

SELECT * FROM array_append_examples;
Copy
+--------------+
| ARRAY_COLUMN |
|--------------|
| [            |
|   1,         |
|   2,         |
|   3          |
| ]            |
+--------------+

Ajoutez un élément du même type au tableau :

UPDATE array_append_examples
  SET array_column = ARRAY_APPEND(array_column, 4);
Copy

Interrogez la table pour connaître le nouvel élément ajouté au tableau :

SELECT * FROM array_append_examples;
Copy
+--------------+
| ARRAY_COLUMN |
|--------------|
| [            |
|   1,         |
|   2,         |
|   3,         |
|   4          |
| ]            |
+--------------+

Ajoutez un élément d’un type différent au tableau :

UPDATE array_append_examples
  SET array_column = ARRAY_APPEND(array_column, 'five');
Copy

Interrogez la table pour connaître le nouvel élément ajouté au tableau et le type de données de chaque élément du tableau :

SELECT array_column,
       ARRAY_CONSTRUCT(
        TYPEOF(array_column[0]),
        TYPEOF(array_column[1]),
        TYPEOF(array_column[2]),
        TYPEOF(array_column[3]),
        TYPEOF(array_column[4])) AS type
  FROM array_append_examples;
Copy
+--------------+--------------+
| ARRAY_COLUMN | TYPE         |
|--------------+--------------|
| [            | [            |
|   1,         |   "INTEGER", |
|   2,         |   "INTEGER", |
|   3,         |   "INTEGER", |
|   4,         |   "INTEGER", |
|   "five"     |   "VARCHAR"  |
| ]            | ]            |
+--------------+--------------+