2010-11-20 6 views
1
ID 
------ 
    1 
    1 
    2 
    2 
    3 
    4 
    5 
    5 
    5 
    6 
    7 
    7 
    7 
    8 
    9 
    9 
    10 
    9 

Ich muss den Wert der ersten Zeile mit dem Wert der nächsten Zeile vergleichen. Wenn sie gleich sind, wird y in einer anderen Spalte angezeigt.aktuellen Zeilenwert mit nächsten Zeilenwert vergleichen

ID    flag 
------   ------- 
    1     y 
    1     n 
    2     y 
    2     n 
    3     n 
    4 
    5 
    5 
    5 
    6 
    7 
    7 
    7 
    8 
    9 
    9 
    10 
    9 

Ich möchte diese Abfrage in Oracle ausgeführt werden.

Antwort

2

Sie können analytische Funktionen (Fenster-Funktionen) verwenden:

select id, 
    case 
     when lead(id, 1, 0) over (order by id) = id then 'Y' 
     else 'N' 
    end 
    from your_ids_table; 

Sie order by Klausel mit etwas ersetzen können Sie benötigen.

Verwandte Themen