ARRAY_CONCAT |
Tableau de concaténation |
| BigQuery |
Syntaxe
|
ARRAY_CONCAT(array_expression_1 [, array_expression_n])
|
Paramètres
| Nom |
Description |
| array_expression_1 |
Ce paramètre permet de spécifier le premier tableau à concaténer. |
| array_expression_n |
Ce paramètre permet de spécifier un ou plusieurs tableaux supplémentaires à concaténer avec le premier. Tous les tableaux doivent avoir le même type de données d'élément. |
Description
Cette fonction permet de demander la concaténation d'un moins un ou plusieurs tableaux ayant le même type de données et retourner un seul tableau.
Remarques
- La fonction ARRAY_CONCAT permet de fusionner deux ou plusieurs tableaux (ARRAY) en un seul tableau contenant tous les éléments : Elle préserve l'ordre des
éléments selon leur apparition dans les tableaux fournis en paramètres. C'est une opération très utile pour rassembler des sous-ensembles en une seule liste
linéaire.
- Tous les tableaux passés à la fonction doivent être du même type (ARRAY<type>), sinon BigQuery renverra une erreur de type : Cela garantit
l'uniformité des données dans le tableau final, ce qui est essentiel pour les traitements ultérieurs tels que le tri ou le filtrage.
- Les éléments NULL présents dans les tableaux sont conservés dans le tableau résultant : Autrement dit, ARRAY_CONCAT ne filtre ni ne modifie le contenu
des tableaux, elle les assemble tel quel. Si l'on souhaite ignorer les NULL, il faut filtrer après concaténation avec, par exemple, ARRAY(SELECT x FROM UNNEST(...)
WHERE x IS NOT NULL).
- Cette fonction accepte un nombre variable d'arguments, ce qui permet de concaténer dynamiquement plusieurs tableaux en une seule instruction : Cela évite
des constructions répétitives ou manuelles lorsqu'on a plusieurs sources d'éléments à combiner.
- ARRAY_CONCAT est fréquemment utilisée dans des contextes où des champs ou des colonnes doivent être rassemblés dans un format linéaire : Par exemple, on
peut concaténer des listes de valeurs collectées à partir de différentes jointures ou sous-requêtes pour produire une sortie unifiée.
- Le tableau retourné peut contenir des doublons si les tableaux en entrée contiennent les mêmes éléments : Pour obtenir un tableau sans doublons, il faut
combiner ARRAY_CONCAT avec ARRAY(SELECT DISTINCT ...) ou utiliser ARRAY_AGG(DISTINCT ...) après un UNNEST.
- La performance de ARRAY_CONCAT reste très bonne même sur de grandes structures, car elle ne fait pas de transformation mais seulement un chaînage des blocs de
données : Cela en fait un outil idéal pour les assemblages intermédiaires dans les chaînes de traitement SQL volumineuses.
- Il est possible d'utiliser ARRAY_CONCAT avec des tableaux construits dynamiquement, comme ceux issus d'un ARRAY_AGG, de SPLIT, ou même de constantes
ARRAY[...] : Cela permet de composer des structures complexes de manière modulaire, par exemple pour assembler des données historiques et actuelles dans une
seule liste.
Dernière mise à jour : Jeudi, le 18 Juin 2020