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

İlk satır değerini sonraki satır değeriyle karşılaştırmalıyım. Eğer eşitse, başka bir sütunda y görüntülenir.Geçerli satır değerini sonraki satır değeriyle karşılaştırın

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 

Bu sorgunun Oracle'da çalışmasını istiyorum. İhtiyacınız şeyle order by maddesini değiştirebilirsiniz

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

:

cevap

2

Sen analitik fonksiyonlar (pencere fonksiyonları) kullanabilirsiniz.