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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |