- Catégories :
Fonctions de données semi-structurées et structurées (tableau/objet)
ARRAY_FLATTEN¶
Aplatit un ARRAY de ARRAYs en un seul ARRAY. La fonction concatène effectivement les ARRAYs qui sont des éléments de l’entrée ARRAY et les renvoie sous la forme d’un seul ARRAY.
Syntaxe¶
ARRAY_FLATTEN( <array> )
Arguments¶
array
L’ARRAY des ARRAYs à aplatir.
Si un élément de
array
n’est pas un ARRAY, la fonction signale une erreur.
Renvoie¶
Cette fonction renvoie un ARRAY construit en concaténant les ARRAYs dans array
.
Si array
est NULL ou contient des éléments qui sont NULL, la fonction renvoie NULL.
Notes sur l’utilisation¶
Si
array
contient plusieurs niveaux d’ARRAYs imbriqués, la fonction ne supprime qu’un seul niveau d’imbrication.Par exemple, si l’entrée ARRAY est :
[ [ [1, 2], [3] ], [ [4], [5] ] ]
La fonction retourne :
[ [1, 2], [3], [4], [5] ]
Exemples¶
L’exemple suivant aplatit un ARRAY d’ARRAYs. Chaque élément de l’ARRAY en entrée est un ARRAY de nombres. L’exemple aplatit l’ARRAY en entrée en un ARRAY contenant les nombres comme éléments.
SELECT ARRAY_FLATTEN([[1, 2, 3], [4], [5, 6]]);
+-----------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [4], [5, 6]]) |
|-----------------------------------------|
| [ |
| 1, |
| 2, |
| 3, |
| 4, |
| 5, |
| 6 |
| ] |
+-----------------------------------------+
L’exemple suivant aplatit un ARRAY qui contient des ARRAYs contenant des ARRAYs. La fonction supprime le premier niveau d’imbrication.
SELECT ARRAY_FLATTEN([[[1, 2], [3]], [[4], [5]]]);
+--------------------------------------------+
| ARRAY_FLATTEN([[[1, 2], [3]], [[4], [5]]]) |
|--------------------------------------------|
| [ |
| [ |
| 1, |
| 2 |
| ], |
| [ |
| 3 |
| ], |
| [ |
| 4 |
| ], |
| [ |
| 5 |
| ] |
| ] |
+--------------------------------------------+
L’exemple suivant montre que la fonction renvoie une erreur lorsqu’un élément de l’ARRAY en entrée n’est pas un ARRAY.
SELECT ARRAY_FLATTEN([[1, 2, 3], 4, [5, 6]]);
100107 (22000): Not an array: 'Input argument to ARRAY_FLATTEN is not an array of arrays'
L’exemple suivant montre que la fonction renvoie NULL lorsqu’un élément de l’ARRAY en entrée est NULL.
SELECT ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]);
+------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]) |
|------------------------------------------|
| NULL |
+------------------------------------------+
L’exemple suivant montre que la fonction aplatit un ARRAY lorsqu’un élément de l’ARRAY en entrée est un ARRAY qui contient un élément NULL.
SELECT ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]);
+--------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]) |
|--------------------------------------------|
| [ |
| 1, |
| 2, |
| 3, |
| undefined, |
| 5, |
| 6 |
| ] |
+--------------------------------------------+