select * from tablename group by 所有字段 having count(*)>1;

解决方案 »

  1.   

    只查proName,mId字段
    select proName,mId from wap group by proName,mId 
    查所有字段需要有条件,即当proName,mId相同时,显示哪条记录?
      

  2.   

    select distinct proName,mId from wap;
    这样不可以吗?
    我试了一下,和
    select proName,mId from wap group by proName,mId having count(*)>1;
    结果是一样的
      

  3.   

    having count(*)>1是不对的,只显示了重复的数据,应该>=1
    select distinct proName,mId from wap;也可以
      

  4.   

    select * from (select t.*,row_number() over(partition by a1,a2 order by a1,a2) rn from tbname t) where rn = 1
      

  5.   

    distinct 不是对单个字段限制,是对记录进行限制的,所以select distinct proName,mId from wap;是应该可以的
      

  6.   

    select wap.*
    from wap join 
        (select proName,mId 
          from wap 
          group by proName,mId 
          having count(1) =1 ) a  
       on (wap.proName=a.proName and wap.mId=a.mId)
      

  7.   

    谢谢 谢谢我马上试一下。想不到Oracle区的朋友们都这么热心!!!!!有分一定重谢!!!!!
      

  8.   

    select distinct proName,mId from wap;
      

  9.   

    select distinct proName,mId from wap;
      

  10.   

    但如果我同时还需要查找其它字段呢? 
    那sql语句应该怎么把该表里的其它字段保存的信息也查出来啊。
      

  11.   

    楼主:查其它字段需要有条件,即当proName,mId相同时,显示哪条记录?
      

  12.   

    SELECT DISTINCT * FROM WAP都可以.它是检索所有不重复的记录出来(重复的取一条).
    但DITINCT 只能放SELECT 后,不要放别处了.