现在有这样一张表以及字段、数据如下:
表名:test
字段:code   desc   group
      001    a      I
      001    b      G
      002    c      B现在想取出如下数据:
code  desc
001    a
002    c
也就是说对于表test中code重复的记录,只取其一即可。能否通过一个select语句搞定呢?谢谢!!

解决方案 »

  1.   

    select code,min(desc) from test group by code;
      

  2.   

    select distinct code,desc from test order by code;
      

  3.   

    MIN MAX ROW_NUMBER RANK DENSE_RANK都行。
      

  4.   

    LZ只是说选择其一,对desc的内容并未做要求,最大?最小?任意?
    所以, 如果只对code  求唯一,那写法多了。
      

  5.   

    select code,min(desc) from test group by code;select code,max(desc) from test group by code;
      

  6.   

    select code,min(desc) from test group by code; 
    按LZ的意思,应该是取desc最小的
      

  7.   

    select distinct(code),desc from test order by code;
      

  8.   

    貌似row_number() 可以这样写,RANK 和 DENSE_RANK 不知道怎么写 
    select * from (
    select code,desc,row_number() over(partition by code order by desc) num
    from test
    ) where num=1 
      

  9.   

    select code,min(desc) as desc from test group by code;
      

  10.   

    哈,我就是任意取一个了,min确实是一个好方法,但如果不同的字段不止desc一个,怎么办?
    比如:
    表名:test 
    字段:code  desc  desc1   desc2 
          001    a      d     r 
          001    b      f     v
          002    c      p     c我要得到
    字段:code  desc  desc1   desc2 
          001    a      d     r 
          002    c      p     c是否就只能用10楼那种方法呢?