现在我有一张表,里面有许多条记录,其中有些记录是重复的,有的两条完全一样,有的三条完全一样,如何查询出表中的记录,查询出的记录中没有一条是重复的记录
如:aa,1
    bb,2
    cc,3
    dd,4
    bb,2
    aa,1
    ……
  查询出来的结果为:
   aa,1
   bb,2
   cc,3
   dd,4

解决方案 »

  1.   

    莫非是  用distinct ?
      

  2.   

    假设表tb有两个字段a,b
    select * 
    from tb a
    where not exists(
    select 1
    from (select a,b,count(*) from tb group by a,b having count(*)>1) b
    where a.a=b.a and a.b=b.b);
      

  3.   

    SELECT DISTINCT COL1,COL2 FROM YOUTABLE
      

  4.   

    如果重复的记录只取一条,那么
    select * 
    from 
    (select t.*,row_number() over(partition by a,b) rn from tb t)
    where rn=1
      

  5.   

    这样也不可以,在row_number() 前出错
    ORA-30485:missint ORDER BY expression in the window specification
      

  6.   

    select distinct 字段1,字段2 from 表名
      

  7.   

    这个正解!
    楼主的意思没有表述清楚,从文字描述上看,是取没有重复记录的记录(有点儿绕口),这样的话,hdhai9451同志正解。
    楼主下面给的例子来看,只是想取出所有的记录,如果有重复就取1条,这样的话,剩下的同志们用distinct就都对了。
    建议楼主描述问题的时候搞清楚,事半功倍的。搞技术,很精确的,来不得半点马虎。