Liefert Werte aus der letzten Zeile eines Fensters.
LAST_VALUE( [ ALL ] expression[ { RESPECT | IGNORE } NULLS ] ) OVER ( window-spec )
winodow-spec: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
expression 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 expression anhand des letzten Datensatzes berechnet und Ergebnisse werden zurückgegeben.
Wenn IGNORE NULLS angegeben ist, wird der letzte Nicht-NULL-Wert von expression 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 window-spec können in der Funktionssyntax (Inline) oder zusammen mit einer WINDOW-Klausel in der SELECT-Anweisung angegeben werden. Weitere Hinweise finden Sie unter der winodow-spec-Definition für die WINDOW-Klausel. Siehe 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 Erweiterung des Herstellers.
SQL Anywhere unterstützt die SQL/2008 -Sprachenfunktion F441, "Extended set function support", die es zulässt, dass Operanden von Fensterfunktionen beliebige Ausdrücke sind, die keine Spaltenreferenzen darstellen.
SQL Anywhere bietet keine Unterstützung für die optionale SQL/2008-Funktion F442, "Gemischte Spaltenreferenzen in Gruppenfunktionen". SQL Anywhere lässt es nicht zu, dass die Argumente einer Aggregatfunktion sowohl eine Spaltenreferenz aus dem Abfrageblock mit der LAST_VALUE-Funktion als auch eine äußere Referenz enthalten. Ein Beispiel finden Sie unter AVG-Funktion [Aggregat].
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 | 24903 | 500 | Jose Martinez |
Joseph Barker | 27290 | 500 | Jose Martinez |
Sheila Romero | 27500 | 500 | Jose Martinez |
Felicia Kuo | 28200 | 500 | Jose Martinez |
Jeannette Bertrand | 29800 | 500 | Jose Martinez |
Jane Braun | 34300 | 500 | Jose Martinez |
Anthony Rebeiro | 34576 | 500 | Jose Martinez |
Charles Crowley | 41700 | 500 | Jose Martinez |
Jose Martinez | 55500.8 | 500 | Jose Martinez |
Doug Charlton | 28300 | 400 | Scott Evans |
Elizabeth Lambert | 29384 | 400 | Scott Evans |
Joyce Butterfield | 34011 | 400 | Scott Evans |
Robert Nielsen | 34889 | 400 | Scott Evans |
Alex Ahmed | 34992 | 400 | Scott Evans |
Ruth Wetherby | 35745 | 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.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |