La fonction GENERATE_SERIES génère une séquence d'entiers consécutifs de from à to, bornes incluses.
Syntaxe
GENERATE_SERIES(BIGINT from, BIGINT to)
Paramètres
|
Paramètre |
Type |
Description |
|
|
BIGINT |
Borne inférieure de la série (inclusive). |
|
|
BIGINT |
Borne supérieure de la série (inclusive). |
Exemple
Données de test
|
s (BIGINT NOT NULL) |
e (BIGINT NOT NULL) |
|
1 |
3 |
|
-2 |
1 |
Code de test
CREATE TEMPORARY TABLE input_table(
s BIGINT NOT NULL,
e BIGINT NOT NULL
) WITH (
'connector' = 'datagen'
);
CREATE TEMPORARY TABLE output_table(
s BIGINT NOT NULL,
e BIGINT NOT NULL,
v BIGINT NOT NULL
) WITH (
'connector' = 'print'
);
INSERT INTO output_table
SELECT s, e, v FROM input_table, LATERAL TABLE(GENERATE_SERIES(s, e)) AS t(v);
Résultat du test
|
s (BIGINT) |
e (BIGINT) |
v (BIGINT) |
|
1 |
3 |
1 |
|
1 |
3 |
2 |
|
1 |
3 |
3 |
|
-2 |
1 |
-2 |
|
-2 |
1 |
-1 |
|
-2 |
1 |
0 |
|
-2 |
1 |
1 |
Pour la ligne d'entrée (1, 3), la fonction émet les valeurs 1, 2 et 3. Pour la ligne d'entrée (-2, 1), elle émet -2, -1, 0 et 1.