将当前行值与下一行值进行比较

时间:2010-11-20 13:11:53

标签: oracle10g

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

我需要将第一行值与下一行值进行比较。如果它们相等则在另一列显示y。

    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

我希望此查询在Oracle中运行。

1 个答案:

答案 0 :(得分:2)

您可以使用分析函数(窗口函数):

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

您可以将order by子句替换为您需要的任何内容。