- Catégories :
Fonctions de données semi-structurées et structurées (tableau/objet)
ARRAY_GENERATE_RANGE¶
Renvoie un ARRAY de valeurs entières comprises dans un intervalle spécifié (par exemple [2, 3, 4]
).
Syntaxe¶
ARRAY_GENERATE_RANGE( <start> , <stop> [ , <step> ] )
Arguments¶
Obligatoire :
start
Le premier nombre de la plage de nombres à renvoyer.
Vous devez spécifier une expression qui donne une valeur INTEGER.
stop
Le dernier nombre de la plage. Notez que ce nombre n’est pas inclus dans la plage de nombres renvoyés.
Par exemple,
ARRAY_GENERATE_RANGE(1, 5)
renvoie[1, 2, 3, 4]
(qui n’inclut pas5
).Vous devez spécifier une expression qui donne une valeur INTEGER.
Facultatif :
step
Le montant à incrémenter ou décrémenter pour chaque nombre suivant dans le tableau. Par exemple :
ARRAY_GENERATE_RANGE(0, 16, 5)
renvoie[0, 5, 10, 15]
ARRAY_GENERATE_RANGE(0, -16, -5)
renvoie[0, -5, -10, -15]
Vous pouvez spécifier un nombre positif ou négatif. Vous ne pouvez pas spécifier 0.
La valeur par défaut est
1
.
Renvoie¶
Un ARRAY d’entiers dans l’intervalle spécifié.
Si l’un des arguments est NULL, la fonction renvoie NULL.
Notes sur l’utilisation¶
Après
start
, chaque élément suivant augmente ou diminue destep
(selon questep
est positif ou négatif) jusqu’àstop
(non compris).Par exemple :
ARRAY_GENERATE_RANGE(10, 50, 10)
renvoie[10, 20, 30, 40]
.ARRAY_GENERATE_RANGE(-10, -50, -10)
renvoie[-10, -20, -30, -40]
.
La fonction renvoie un ARRAY vide dans l’une des conditions suivantes :
start = stop
.step
est un nombre positif etstart > stop
.step
est un nombre négatif etstart < stop
.
Par exemple :
ARRAY_GENERATE_RANGE(2, 2, 4)
renvoie[]
.ARRAY_GENERATE_RANGE(8, 2, 2)
renvoie[]
.ARRAY_GENERATE_RANGE(2, 8, -2)
renvoie[]
.
Exemples¶
L’exemple suivant renvoie un ARRAY contenant une plage de nombres commençant par 2 et se terminant avant 5 :
SELECT ARRAY_GENERATE_RANGE(2, 5);
+----------------------------+
| ARRAY_GENERATE_RANGE(2, 5) |
|----------------------------|
| [ |
| 2, |
| 3, |
| 4 |
| ] |
+----------------------------+
L’exemple suivant renvoie un ARRAY contenant une plage de nombres commençant par 5 et se terminant avant 25, dont la valeur augmente de 10 :
SELECT ARRAY_GENERATE_RANGE(5, 25, 10);
+---------------------------------+
| ARRAY_GENERATE_RANGE(5, 25, 10) |
|---------------------------------|
| [ |
| 5, |
| 15 |
| ] |
+---------------------------------+
L’exemple suivant renvoie un ARRAY contenant une plage de nombres commençant par -5 et se terminant avant -25, avec une valeur décroissante de -10 :
SELECT ARRAY_GENERATE_RANGE(-5, -25, -10);
+------------------------------------+
| ARRAY_GENERATE_RANGE(-5, -25, -10) |
|------------------------------------|
| [ |
| -5, |
| -15 |
| ] |
+------------------------------------+