可以直接這樣寫
select name 
from table
group by name
having count(*)=1
如果不好理解,其實是等同
select name,count(*)
from table
group by name
having count(*)=1

解决方案 »

  1.   

    distinct  就可以了!但数据多,效率不好!建索引。
      

  2.   

    我是说要把id也要查询出来,但是name不能相同。
    我要的结果是
     id  name  
       1  a  
       2  b  
       3  c   
       5  b  
      

  3.   

    我是说要把id也要查询出来,但是name不能相同。  
    我要的结果是  
     id    name      
         1    a      
         2    b      
         3    c
    而不是只查询name一个字段
      

  4.   

    這個id是表中的ID還是只是一個流水號?如果是表中的ID那麽
    select max(id),name
    from table
    group by name
      

  5.   

    如果ID只是一個查詢結果的流水號,那麽這樣寫
    select (row_number() over (order by name)) id,  
    name 
    from a 
    group by name
      

  6.   

    看你的要求應該是用MIN(ID)select min(id),name
    from table
    group by name
      

  7.   

    id 不是流水号,这个只是一个例子,实际是一个GUID码
      

  8.   

    3 c
     4 c
    两条记录随便取一条吗?sleect id ,name from (select id ,name, rank() over(partition by id order by name) rank from table) where rank=1
      

  9.   

    yqwd911(windy) 的方法就可以
    dinya2003(OK) 的方法必须要Oracle9i以上才可以运行
    差不多
      

  10.   

    select id,distinct name  from table order by name;