Categorias:

Funções de geração de dados

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] )
Copy

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 |
+--------+
Copy
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 |
+---------+---------+
Copy

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 |
+-------------------------------------+
Copy