以编程方式显示表中的值

时间:2013-11-26 23:53:50

标签: sql

在表TEST中,有一些名为A,B的列。列A具有重复值100,100,100表的AS ID和列B应根据列A中的重复值而变化。列中第一次出现的值B列中的值应为1,但之后应为0.是否可以在报告级别而不是更改物理表中的值。哪个查询可以在报表级别以编程方式实现此目的?

A B

100 1
100 1
100 1
200 1
200 1
300 1
400 1

预期输出

A B

100 1
100 0
100 0
200 1
200 0
300 1
400 1

1 个答案:

答案 0 :(得分:0)

假设您正在使用SQL Server,这是一个解决方案。

select A, 
  case when (row_number() over (partition by A order by A)) = 1
    then 1 
    else 0 
  end as B    
from TEST

请参阅Fiddle