2017-08-24 1 views
-3

Normalerweise verwende ich LEAD und LAG Funktion von Oracle wie folgt aus:LEAD und LAG-Funktion in Oracle komplexe Anordnung mit

... 
LEAD(id, 1) OVER (ORDER BY sorted_field) AS prev 
... 
ORDER BY sorted_field DESC 

aber ich möchte wie diese mit komplexen Bestellung:

... 
LEAD(id, 1) OVER (ORDER BY CASE WHEN id = 42 THEN 1 ELSE 2 END, sorted_field) AS prev 
... 
ORDER BY sorted_field DESC 

Jeder weiß, Kann ich komplexe Bestellungen in OVER Klausel verwenden?

+1

Gibt es ein Problem mit Ihrem aktuellen Code? Ist es nicht möglich, durch einen CASE-Ausdruck in einer analytischen Funktion zu sortieren? –

+1

Es sollte einfach funktionieren, oder? Was geschieht? –

+0

Ergebnisse sind andere als ausgenommen ... – kicaj

Antwort

3

Kann ich komplexe Bestellungen in OVER Klausel verwenden?

Ja, Sie können.

Ihr Code

LEAD(id, 1) OVER (ORDER BY CASE WHEN id = 42 THEN 1 ELSE 2 END, sorted_field) 

ist syntaktisch gültig.

Verwandte Themen