列子:
       name
 
       小雷
       小刘
       小雷
       小柳
       小刘
       小刘
       小崔
       .....
不要说用 select * form 表名 where name='小雷' and name='小刘' ,这样的语句,因为假如我有几十个,每个人有几十条记录的话,我岂不是要先去看看有那些人有过记录,然后在写几十个and?我只想取出人名(就算你一个人有1000条记录,最后只显示一个名字,)。  

解决方案 »

  1.   

    select distinct name from tb
      

  2.   


    select distinct name from tbselect name from tb group by name
      

  3.   

    create table tb(name nvarchar(10))insert into tb select '小雷'
    insert into tb select '小刘'
    insert into tb select '小雷'
    insert into tb select '小柳'
    insert into tb select '小刘'
    insert into tb select '小刘'
    insert into tb select '小崔'
    go
    select distinct name from tb
    /*
    name
    ----------
    小崔
    小雷
    小刘
    小柳(4 行受影响)*/
    go
    drop table tb
      

  4.   

    select name from tb 
    group by name
      

  5.   


    select
     name
    from
     (select  px=row_number()over(partition by name order by getdate()),* from tb)t
    where
      px=1