读书人

重复行的标记设定解决方案

发布时间: 2012-04-26 14:01:31 作者: rapoo

重复行的标记设定
在下有个查询想设置,请求帮忙。
如下表:
A B C
1 2 3
1 2 4
2 1 1
2 1 2
2 1 3
.......

经查询后,如下图显示
A B C D
1 2 3
1 2 4 Y
2 1 1
2 1 2 Y
2 1 3 Y
.......

过滤的条件为:
若A,B列的对应的行数值相同的时候,后续的行都会显示带有‘Y’的标记,首行无需显示,以区分该行重复

[解决办法]

SQL code
--> --> (Roy)生成 declare @T table([A] int,[B] int,[C] int)Insert @Tselect 1,2,3 union allselect 1,2,4 union allselect 2,1,1 union allselect 2,1,2 union allselect 2,1,3;with aas(Select *,ROW_NUMBER()over(order by (select 1)) as d from @T)select a.A,a.B,a.C,[d]=Case when b.A Is not null then 'Y' else '' endfrom aleft join a as b on a.d=b.d+1 and a.a=b.a and a.b=b.b/*A    B    C    d1    2    3    1    2    4    Y2    1    1    2    1    2    Y2    1    3    Y*/ 

读书人网 >SQL Server

热点推荐