- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
ARRAY_GENERATE_RANGE¶
Retorna uma ARRAY de valores inteiros em um intervalo especificado (por exemplo, [2, 3, 4]
).
Sintaxe¶
ARRAY_GENERATE_RANGE( <start> , <stop> [ , <step> ] )
Argumentos¶
Obrigatório:
start
O primeiro número no intervalo de números a ser retornado.
Você precisa especificar uma expressão que seja avaliada como um valor INTEGER.
stop
O último número no intervalo. Observe que esse número não está incluído no intervalo de números retornados.
Por exemplo,
ARRAY_GENERATE_RANGE(1, 5)
retorna[1, 2, 3, 4]
(que não inclui5
).Você precisa especificar uma expressão que seja avaliada como um valor INTEGER.
Opcional:
step
O valor para incrementar ou decrementar cada número subsequente na matriz. Por exemplo:
ARRAY_GENERATE_RANGE(0, 16, 5)
retorna[0, 5, 10, 15]
ARRAY_GENERATE_RANGE(0, -16, -5)
retorna[0, -5, -10, -15]
Você pode especificar um número positivo ou negativo. Não é possível especificar 0.
O valor padrão é
1
.
Retornos¶
Uma ARRAY de números inteiros no intervalo especificado.
Se algum dos argumentos for NULL, a função retornará NULL.
Notas de uso¶
Após
start
, cada elemento subsequente aumenta ou diminui emstep
(dependendo do fato destep
ser positivo ou negativo) atéstop
(mas não incluindo).Por exemplo:
ARRAY_GENERATE_RANGE(10, 50, 10)
retorna[10, 20, 30, 40]
.ARRAY_GENERATE_RANGE(-10, -50, -10)
retorna[-10, -20, -30, -40]
.
A função retorna uma ARRAY vazia em qualquer uma das seguintes condições:
start = stop
.step
é um número positivo estart > stop
.step
é um número negativo estart < stop
.
Por exemplo:
ARRAY_GENERATE_RANGE(2, 2, 4)
retorna[]
.ARRAY_GENERATE_RANGE(8, 2, 2)
retorna[]
.ARRAY_GENERATE_RANGE(2, 8, -2)
retorna[]
.
Exemplos¶
O exemplo a seguir retorna uma ARRAY contendo um intervalo de números que começa em 2 e termina antes de 5:
SELECT ARRAY_GENERATE_RANGE(2, 5);
+----------------------------+
| ARRAY_GENERATE_RANGE(2, 5) |
|----------------------------|
| [ |
| 2, |
| 3, |
| 4 |
| ] |
+----------------------------+
O exemplo a seguir retorna uma ARRAY contendo um intervalo de números que começa em 5 e termina antes de 25, aumentando o valor em 10:
SELECT ARRAY_GENERATE_RANGE(5, 25, 10);
+---------------------------------+
| ARRAY_GENERATE_RANGE(5, 25, 10) |
|---------------------------------|
| [ |
| 5, |
| 15 |
| ] |
+---------------------------------+
O exemplo a seguir retorna uma ARRAY contendo um intervalo de números que começa em -5 e termina antes de -25, diminuindo o valor em -10:
SELECT ARRAY_GENERATE_RANGE(-5, -25, -10);
+------------------------------------+
| ARRAY_GENERATE_RANGE(-5, -25, -10) |
|------------------------------------|
| [ |
| -5, |
| -15 |
| ] |
+------------------------------------+