Liefert Werte aus der letzten Zeile eines Fensters.
LAST_VALUE( Ausdruck[ { RESPECT | IGNORE } NULLS ] ) OVER ( Fensterspezifikation )
Fensterspezifikation: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
Ausdruck Der auszuwertende Ausdruck. Z.B. ein Spaltenname.
Datentyp des Arguments.
Mit der LAST_VALUE-Funktion können Sie den letzten Wert (entsprechend der Sortierung) in einer Tabelle auswählen, ohne einen Selbst-Join verwenden zu müssen. Dies ist nützlich, wenn Sie den letzten Wert als Basiswert in Berechnungen verwenden wollen.
Die LAST_VALUE-Funktion verwendet den letzten Datensatz aus der Partition, nachdem eine ORDER BY-Anweisung ausgeführt wurde. Anschließend wird der Ausdruck anhand des letzten Datensatzes berechnet und Ergebnisse werden zurückgegeben.
Wenn IGNORE NULLS angegeben ist, wird der letzte Nicht-NULL-Wert von Ausdruck zurückgegeben. Wenn RESPECT NULLS angegeben ist (Standardwert), wird der letzte Wert zurückgegeben, unabhängig davon, ob er NULL ist.
Die LAST_VALUE-Funktion unterscheidet sich von den meisten anderen Aggregatfunktionen, weil sie nur mit einer Fensterspezifikation verwendet werden kann.
Elemente von Fensterspezifikation können in der Funktionssyntax (Inline) oder zusammen mit einer WINDOW-Klausel in der SELECT-Anweisung angegeben werden. 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.
SQL/2003 Erweiterung des Herstellers
Das folgende Beispiel gibt das Gehalt jedes Mitarbeiters sowie den Namen des Mitarbeiters mit dem höchsten Gehalt in der Abteilung zurück:
SELECT GivenName + ' ' + Surname AS employee_name, Salary, DepartmentID, LAST_VALUE( employee_name ) OVER Salary_Window AS highest_paid FROM Employees WINDOW Salary_Window AS ( PARTITION BY DepartmentID ORDER BY Salary RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ); |
employee_name | Salary | DepartmentID | highest_paid |
---|---|---|---|
Michael Lynch | 24.903,000 | 500 | Jose Martinez |
Joseph Barker | 27.290,000 | 500 | Jose Martinez |
Sheila Romero | 27.500,000 | 500 | Jose Martinez |
Felicia Kuo | 28.200,000 | 500 | Jose Martinez |
Jeannette Bertrand | 29.800,000 | 500 | Jose Martinez |
Jane Braun | 34.300,000 | 500 | Jose Martinez |
Anthony Rebeiro | 34.576,000 | 500 | Jose Martinez |
Charles Crowley | 41.700,000 | 500 | Jose Martinez |
Jose Martinez | 55.500,800 | 500 | Jose Martinez |
Doug Charlton | 28.300,000 | 400 | Scott Evans |
Elizabeth Lambert | 29.384,000 | 400 | Scott Evans |
Joyce Butterfield | 34.011,000 | 400 | Scott Evans |
Robert Nielsen | 34.889,000 | 400 | Scott Evans |
Alex Ahmed | 34.992,000 | 400 | Scott Evans |
Ruth Wetherby | 35.745,000 | 400 | Scott Evans |
... | ... | ... | ... |
Jose Martinez hat in der Abteilung 500 das höchste Gehalt und Scott Evans in der Abteilung 400.
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 |