- Catégories :
Fonctions de données semi-structurées (tableau/objet)
ARRAY_INSERT¶
Renvoie un tableau contenant tous les éléments du tableau source ainsi que le nouvel élément.
Arguments¶
array
Le tableau source.
pos
Une position (basée sur zéro) dans le tableau source. Le nouvel élément est inséré à cette position. L’élément d’origine à partir de cette position (le cas échéant) et tous les éléments suivants (le cas échéant) sont décalés d’une position vers la droite dans le tableau résultant (l’insertion à la position 0 a le même effet que l’utilisation de ARRAY_PREPEND).
Une position négative est interprétée comme un index à l’arrière du tableau (par exemple,
-1
entraîne l’insertion avant le dernier élément du tableau).new_element
L’élément à insérer. Le nouvel élément est situé à la position
pos
. L’ordre relatif des autres éléments du tableau source est préservé.
Renvoie¶
Le type de données de la valeur renvoyée est ARRAY
.
Notes sur l’utilisation¶
Si la valeur absolue de
pos
dépasse le nombre d’éléments duarray
, des éléments vides supplémentaires sont insérés entre le nouvel élément et les éléments du tableau source.Pour ajouter ou préfixer des éléments à un tableau, vous devez utiliser ARRAY_APPEND ou ARRAY_PREPEND.
Exemples¶
Ceci montre un exemple simple d’insertion dans un tableau :
SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),2,'hello');
+--------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),2,'HELLO') |
|--------------------------------------------------|
| [ |
| 0, |
| 1, |
| "hello", |
| 2, |
| 3 |
| ] |
+--------------------------------------------------+
Ceci montre une insertion qui utilise un index supérieur au nombre d’éléments existants dans le tableau.
SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),5,'hello');
+--------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),5,'HELLO') |
|--------------------------------------------------|
| [ |
| 0, |
| 1, |
| 2, |
| 3, |
| undefined, |
| "hello" |
| ] |
+--------------------------------------------------+
Cela montre une insertion qui utilise un index négatif.
SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),-1,'hello');
+---------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),-1,'HELLO') |
|---------------------------------------------------|
| [ |
| 0, |
| 1, |
| 2, |
| "hello", |
| 3 |
| ] |
+---------------------------------------------------+