- 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:
startO primeiro número no intervalo de números a ser retornado.
Você precisa especificar uma expressão que seja avaliada como um valor INTEGER.
stopO ú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:
stepO 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 destepser 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 |
| ] |
+------------------------------------+