现在假设有个表t1
id     pid      itime
--------------------------
1      2         2009-1-1
2      4         2009-1-2
3      5         2009-1-3
4      7         2009-1-4
5      4         2009-1-5
6      2         2009-1-5
7      6         2009-1-6
--------------------------
如果查询得到不重复的PID且按itime倒序排序。

解决方案 »

  1.   

    select distinct pid from t1 order by itime desc
      

  2.   

    你数据中有2个PID为4的,2个为2的,在这种重复项中,我怎么知道你要取哪行数据?
    比如
    1      2        2009-1-1 
    6      2        2009-1-5 
    这两个DISTINCT后你说要我取哪个?
      

  3.   

    select distinct pid 
    from t1 
    order by itime desc
      

  4.   


    create table #t (id int ,pid int,item datetime)
    insert into #t values ( 1,      2 ,       '2009-1-1')
    insert into #t values (2 ,     4      ,  '2009-1-2'  )
    insert into #t values (3  ,    5    ,    '2009-1-3' )
    insert into #t values (4   ,   7   ,     '2009-1-4' )
    insert into #t values (5    ,  4  ,      '2009-1-5' )
    insert into #t values (6     , 2 ,       '2009-1-5'  )
    insert into #t values (7      ,6,        '2009-1-6' )select * from #t where pid in (select pid from #t group by pid having count(pid)=1) order by item desc
    --drop table #t
      

  5.   


    select * from #t where pid in (select pid from #t group by pid having count(pid)=1) order by item desc
      

  6.   

    desc咋总是显不全,真服是CSDN了
      

  7.   

    感谢大家的关注,但请不要想当然,随便就发个不符合SQL查询基本原则的SQL语句上来好吗?
    如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。
      

  8.   

    select pid,max(itime) from t1  group by pidorder by itime desc
    用mysql测的
      

  9.   

    declare @t table (id int, pid int, itime datetime)
    insert into @t values(1,2,'2009-1-1')
    insert into @t values(2,4,'2009-1-2')
    insert into @t values(3,5,'2009-1-3')
    insert into @t values(4,7,'2009-1-4')
    insert into @t values(5,4,'2009-1-5')
    insert into @t values(6,2,'2009-1-5')
    insert into @t values(7,6,'2009-1-6')select distinct(pid) as pid,max(id) as id,max(itime) as itime from @t group by pid order by itime测试一下