Kategorien:

Datengenerierungsfunktionen

SEQ1 / SEQ2 / SEQ4 / SEQ8

Gibt eine Folge von monoton zunehmenden Ganzahlen mit Umbruch zurück. Der Umbruch erfolgt nach der größten darstellbaren Ganzzahl der Ganzzahlbreite (1, 2, 4 oder 8 Byte).

Wichtig

Diese Funktion verwendet Sequenzen, um eine eindeutige Menge ansteigender Ganzzahlen zu erzeugen, erzeugt jedoch nicht notwendigerweise eine lückenfreie Sequenz. Bei Verarbeitung einer großen Datenmenge können in einer Sequenz Lücken auftreten. Wenn eine vollständig sortierte, lückenlose Sequenz benötigt wird, sollten Sie die Fensterfunktion ROW_NUMBER verwenden.

Weitere Informationen zu Sequenzen in Snowflake finden Sie unter Verwenden von Sequenzen.

Syntax

SEQ1( [0|1] )

SEQ2( [0|1] )

SEQ4( [0|1] )

SEQ8( [0|1] )

Nutzungshinweise

  • Wenn das optionale Zeichenargument 0 ist, wird die Sequenz nach dem Umbruch bei 0 fortgesetzt. Wenn das optionale Zeichenargument 1 ist, fährt die Sequenz gemäß der angegebenen Ganzzahlbreite bei der kleinsten darstellbaren Zahl fort.

  • Das Standardzeichenargument lautet 0.

Beispiele

Dies sind grundlegende Beispiele für die Verwendung von Sequenzen:

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

Dieses Beispiel zeigt, wie Sie mit ROW_NUMBER eine lückenlose Sequenz generieren:

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