Retorna um array com os elementos especificados com base em expressões.
Sintaxe
sequence(start, stop, [step])
Parâmetros
-
start: expressão que representa o início de uma sequência de elementos. A sequência inclui o valor de start.
Os parâmetros start e stop aceitam os seguintes tipos inteiros: TINYINT, SMALLINT, INT e BIGINT. Esses tipos correspondem aos mesmos tipos aceitos pelo parâmetro step: TINYINT, SMALLINT, INT e BIGINT.
Os parâmetros start e stop também aceitam os seguintes tipos de data e hora: DATE, DATETIME e TIMESTAMP. Esses tipos correspondem aos tipos IntervalDayTime ou IntervalYearMonth aceitos pelo parâmetro step.
stop: expressão que representa o fim de uma sequência de elementos. A sequência inclui o valor de stop.
-
step: opcional. Define o tamanho do passo da sequência de elementos.
Por padrão, se o valor de start for menor ou igual ao valor de stop, o valor de step será 1. Se o valor de start for maior que o valor de stop, o valor de step será -1.
Para sequências do tipo temporal, o valor padrão de step é 1 ou -1 em dias. Ao configurar step, observe as seguintes regras: se o valor de start for maior que o valor de stop, defina step como um valor negativo; se o valor de start for menor ou igual ao valor de stop, defina step como um valor positivo. O sistema retornará um erro caso esses requisitos não sejam atendidos.
Valor de retorno
A função retorna um array contendo os elementos especificados com base nas expressões fornecidas.
Ocorre um erro se o valor de start for maior que o valor de stop e step for positivo. Da mesma forma, ocorre um erro se o valor de start for menor ou igual ao valor de stop e o valor de step for negativo.
Por padrão, a função SEQUENCE gera no máximo 10.000 elementos. Para alterar esse limite, configure o parâmetro
odps.sql.max.sequence.length.
Exemplos
-
SELECT sequence(1, 5);Resultado:
[1, 2, 3, 4, 5] -
SELECT sequence(5, 1);Resultado:
[5, 4, 3, 2, 1] -
SELECT sequence(to_date('2018-01-01'), to_date('2018-03-01'), interval 1 month);Resultado:
[2018-01-01, 2018-02-01, 2018-03-01]
Funções relacionadas
SEQUENCE é uma função de tipo complexo. Para obter mais informações sobre funções usadas para processar dados de tipos complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.