表:col1 col2 col3
11 第一条 NULL
11 第二条 Y
11 第三条 null
22 第四条 Y
问题:
如果col1存在相同的记录并且col3为Y的话,那么显示为Y的这条记录,否则只要显示相同的第一条记 录. 在上面的记录中是第二条. 不存在相同的话.按正常显示.
11 第一条 NULL
11 第二条 Y
11 第三条 null
22 第四条 Y
问题:
如果col1存在相同的记录并且col3为Y的话,那么显示为Y的这条记录,否则只要显示相同的第一条记 录. 在上面的记录中是第二条. 不存在相同的话.按正常显示.
select * from T where c3='Y'
union
select * from T where c1 in(
select c1 from T a where c1 not in(
select c1 from T where c3='Y') group by (c1)having count(c1)=1)
union
select top 1 * from T where c1 in(
select c1 from T a where c1 not in(
select c1 from T where c3='Y') group by (c1)having count(c1)>1)
自己拟的数据:
c1 c2 c3
11 01 NULL
11 02 Y
11 03 NULL
22 04 Y
22 05 NULL
33 06 NULL
44 07 Y
44 08 NULL
55 09 NULL
55 10 NULL运行结果:
11 02 Y
22 04 Y
33 06 NULL
44 07 Y
55 09 NULL