表:col1   col2     col3
   11 第一条  NULL
   11 第二条  Y
   11 第三条  null
   22 第四条 Y
问题:
  如果col1存在相同的记录并且col3为Y的话,那么显示为Y的这条记录,否则只要显示相同的第一条记 录.  在上面的记录中是第二条.  不存在相同的话.按正常显示.

解决方案 »

  1.   

    有点复杂,不知道用CASE语句能写出来不
      

  2.   

    col2字段的数据是怎样的?我自己拟了一些数据做测试是可以的。
    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
      

  3.   

    意思就是hufeili(以琳)楼上那位写的得出来的结果,但是我还没有去测试