- Categorias:
SEQ1 / SEQ2 / SEQ4 / SEQ8¶
Retorna uma sequência de números inteiros monotônicos crescentes, com wrap-around. O encerramento ocorre após o maior número inteiro representativo da largura total (1, 2, 4, ou 8 byte).
Importante
Esta função usa sequências para produzir um conjunto único de inteiros crescentes, mas não produz necessariamente uma sequência sem lacunas. Quando se opera com uma grande quantidade de dados, as lacunas podem aparecer em uma sequência. Se uma sequência totalmente ordenada e sem lacunas for necessária, considere o uso da função de janela ROW_NUMBER.
Para obter mais detalhes sobre as sequências no Snowflake, consulte Uso de sequências.
Sintaxe¶
SEQ1( [0|1] )
SEQ2( [0|1] )
SEQ4( [0|1] )
SEQ8( [0|1] )
Notas de uso¶
Se o argumento do sinal opcional for 0, a sequência continua em 0 após terminar. Se o argumento do sinal opcional for 1, a sequência continua com o menor número representativo com base na largura inteira dada.
O argumento do sinal padrão é 0.
Exemplos¶
Estes são exemplos básicos de utilização de sequências:
SELECT seq8() FROM table(generator(rowCount => 5)); +--------+ | SEQ8() | |--------| | 0 | | 1 | | 2 | | 3 | | 4 | +--------+SELECT * FROM (SELECT seq2(0), seq1(1) FROM table(generator(rowCount => 132))) ORDER BY seq2(0) LIMIT 7 OFFSET 125; +---------+---------+ | SEQ2(0) | SEQ1(1) | |---------+---------| | 125 | 125 | | 126 | 126 | | 127 | 127 | | 128 | -128 | | 129 | -127 | | 130 | -126 | | 131 | -125 | +---------+---------+
Este exemplo mostra como usar ROW_NUMBER para gerar uma sequência sem lacunas:
SELECT ROW_NUMBER() OVER (ORDER BY seq4()) FROM TABLE(generator(rowcount => 10)); +-------------------------------------+ | ROW_NUMBER() OVER (ORDER BY SEQ4()) | |-------------------------------------| | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | +-------------------------------------+