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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Funktionen » SQL-Funktionen (P-Z)

 

ROW_NUMBER-Funktion [Verschiedene]

Ordnet jeder Zeile eine eindeutige Nummer zu Verwenden Sie diese Funktion statt der NUMBER-Funktion.

Syntax
ROW_NUMBER( ) OVER ( Fensterspezifikation )
Fensterspezifikation: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
Rückgabe

INTEGER

Bemerkungen

Elemente von Fensterspezifikation können in der Funktionssyntax (Inline) oder zusammen mit einer WINDOW-Klausel in der SELECT-Anweisung angegeben werden. Wenn sie als eine Fensterfunktion verwendet wird, müssen Sie eine ORDER BY-Klausel angeben und können eine PARTITION BY-Klausel angeben. Allerdings dürfen Sie keine ROWS- oder RANGE-Klausel angeben. Weitere Hinweise finden Sie unter der Fensterspezifikation-Definition unter WINDOW-Klausel.

Weitere Hinweise zur Verwendung von Fensterfunktionen in SELECT-Anweisungen mit Arbeitsbeispielen finden Sie unter Fensterfunktionen.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   SQL/OLAP-Funktion T612.

Beispiel

Das folgende Beispiel gibt eine Ergebnismenge zurück, die für jeden Mitarbeiter in New York und Utah eine eindeutige Zeilennummer liefert. Da die Abfrage anhand des Gehalts (salary) in absteigender Sortierfolge sortiert ist, erhält der Mitarbeiter mit dem höchsten Gehalt in der Datenmenge die erste Zeilennummer. Obwohl zwei Mitarbeiter die gleichen Gehälter beziehen, entsteht keine Gleichwertigkeit, weil den beiden Mitarbeitern eindeutige Zeilennummern zugeordnet sind.

SELECT Surname, Salary, State,
ROW_NUMBER() OVER (ORDER BY Salary DESC) "Rank"
FROM Employees WHERE State IN ('NY','UT');
Surname Salary State Rank
Shishov 72995.000 UT 1
Wang 68400.000 UT 2
Cobb 62000.000 UT 3
Morris 61300.000 UT 4
Davidson 57090.000 NY 5
Martel 55700.000 NY 6
Blaikie 54900.000 NY 7
Diaz 54900.000 NY 8
Driscoll 48023.690 UT 9
Hildebrand 45829.000 UT 10
... ... ... ...
Lynch 24903.000 UT 19