Ordnet jeder Zeile eine eindeutige Nummer zu. Verwenden Sie diese Funktion statt der NUMBER-Funktion.
ROW_NUMBER( ) OVER ( window-spec )
winodow-spec: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
INTEGER
Elemente von window-spec 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 winodow-spec-Definition für die WINDOW-Klausel.
Weitere Hinweise zur Verwendung von Fensterfunktionen in SELECT-Anweisungen mit Arbeitsbeispielen finden Sie unter Fensterfunktionen.
Weitere Hinweise zum Angeben einer Fensterspezifikation in einer OVER-Klausel finden Sie unter Fensterdefinition: Inlining unter Verwendung der Klauseln OVER und WINDOW.
SQL/2008 ROW_NUMBER ist Teil der optionalen SQL/2008-Sprachenfunktion T611, "Elementare OLAP-Vorgänge".
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 |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |