- 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 :
Syntaxe¶
ARRAY_APPEND( <array> , <new_element> )
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;
+--------------+
| 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);
Interrogez la table pour connaître le nouvel élément ajouté au tableau :
SELECT * FROM array_append_examples;
+--------------+
| 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');
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;
+--------------+--------------+
| ARRAY_COLUMN | TYPE |
|--------------+--------------|
| [ | [ |
| 1, | "INTEGER", |
| 2, | "INTEGER", |
| 3, | "INTEGER", |
| 4, | "INTEGER", |
| "five" | "VARCHAR" |
| ] | ] |
+--------------+--------------+