Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfragen und Datenänderung » OLAP-Unterstützung » Fensterfunktionen in SQL Anywhere » Zeilennummerierungsfunktionen

 

ROW_NUMBER-Funktion

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.