编号     状态
001     是
001     否
002     是
003     是
003     否
004     否想要的结果
编号     状态
001     是
002     是
003     是
004     否
求支援求高人支援

解决方案 »

  1.   

    with t as
     (select '001' seq, '是' flag
        from dual
      union all
      select '001', '否'
        from dual
      union all
      select '002', '是'
        from dual
      union all
      select '002', '否'
        from dual
      union all
      select '003', '是'
        from dual
      union all
      select '003', '否'
        from dual
      union all
      select '004', '否' from dual)
    select seq, min(flag) keep(dense_rank last order by flag)
      from t
     group by seq;
      

  2.   

    十分简单;我的表名是   rexsen   字段情况:  语句:select * from
    (select * from rexsen where id in (select id from ( select id,count(id) s from rexsen group by id) where s=2) and name <> '否')union
    (select * from rexsen where id not in (select id from ( select id,count(id) s from rexsen group by id) where s=2) )
      

  3.   

    其实编码重复,这个表结构就已经没有任何意义了,就当是联系SQL语句,才会有点作用。现实中,id貌似不是重复的。这种问题也就比较好解决。
      

  4.   

    3F写的不错,也可以用KEEP(DENSE_RANK FIRST ORDER BY FLAG DESC)
      

  5.   

    with t as
     (select '001' seq, '是' flag
        from dual
      union all
      select '001', '否'
        from dual
      union all
      select '002', '是'
        from dual
      union all
      select '002', '否'
        from dual
      union all
      select '003', '是'
        from dual
      union all
      select '003', '否'
        from dual
      union all
      select '004', '否' from dual)
    select seq,case when instr(wm_concat(flag),'是')>0 then '是' else '否' end from t group by seq;
      

  6.   

    这个确实不好写,主要左边的是动态,没法用 select '001'....union select '002'........之类的因为编号是动态的生成多的 不是固定就这4个,其实的类似这样的,主要是前面2个属性,后面的属性是不同的,所以不会有重复的数据
    属性1      属性2     属性3      属性4  
    1          是           
    1          否           
    2          是           
    3          否           
    4          是           
    4          否 
    5          是
    5          是
    6          否
    6          否
    .          .
    .          .          
    要得到的结果是
    1       是
    2       是
    3       否
    4       是
    5       是
    6       否
    .       .
    .       .
    结果是要同一个"属性1",但是有不同的"属性2"的“2”条数据,只留一条“是”的数据,如果是“属性2” 是相同的话就留一条,即group by就行了。
    这题还真不好做同时谢谢上面帮我解答了,分就给你们了
      

  7.   


    为什么不行?select seq, min(flag) keep(dense_rank last order by flag)
      from t
     group by seq;这个语句得不出你要的结果??