Die Funktion ROW_NUMBER nummeriert die Zeilen im Ergebnis. Es handelt sich nicht um eine Rangfunktion. Sie können diese Funktion jedoch in jeder Situation benutzen, in der auch eine Rangfunktion verwendet werden kann, und sie funktioniert ähnlich wie eine Rangfunktion.
Beispielsweise können Sie ROW_NUMBER in einer abgeleiteten Tabelle verwenden, sodass zusätzliche Einschränkungen und sogar Joins auf die Werte von ROW_NUMBER angewendet werden können:
SELECT * FROM ( SELECT Description, Quantity, ROW_NUMBER( ) OVER ( ORDER BY ID ASC ) AS RowNum FROM Products ) AS DT WHERE RowNum <= 3 ORDER BY RowNum; |
Diese Abfrage liefert folgende Ergebnisse:
Description | Quantity | RowNum |
---|---|---|
Tank Top | 28 | 1 |
V-neck | 54 | 2 |
Crew Neck | 75 | 3 |
Ebenso wie die Rangfunktionen erfordert ROW_NUMBER eine ORDER BY-Klausel.
Außerdem kann ROW_NUMBER nicht deterministische Ergebnisse liefern, wenn sich die ORDER BY-Klausel des Fensters auf nicht eindeutige Ausdrücke bezieht. Bei Gleichwertigkeit ist die Reihenfolge der Zeilen nicht vorhersehbar.
ROW_NUMBER ist für die Anwendung auf die gesamte Partition gedacht. Daher kann mit einer ROW_NUMBER-Funktion keine ROWS- oder RANGE-Klausel spezifiziert werden.
Weitere Hinweise zur Syntax der ROW_NUMBER-Funktion finden Sie unter ROW_NUMBER-Funktion [Verschiedene].
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |