我有一个表 A,有字段 pk,name,datatime(时间)wo 我现在想写一个SQL语句把DATATIME是最后时间的那条记录取出来该怎么写?,谢谢!

解决方案 »

  1.   

    select *
      from (
            select *
              from A a
             order by a.datatime desc
            )
     where rownum = 1;
      

  2.   

    select t1.* from a ,
    (select max(datatime) datatime
              from A a) t
    where a.datatime=t.datatime and rownum=1;
      

  3.   

    select * from A where datatime = (select max(datatime) from A)
    这样也可以吧?
      

  4.   

    我想楼主是不是想描述这个需求,表中有很多name ,各自对应date
    现在想取 各个name 对应的最大的date 的记录
      

  5.   

    用到oracle中的内析函数rank()
    可以试一下:
    select * from
    (select  pk,name,datatime,rank() over(partition by name order by datatime desc) as rank from A
    order by name) t where t.rank=1
    如果有问题,你可以查一下rank()函数用法,相信对你会有用的!
      

  6.   

    楼主你的需求都说的不是很明白,
    如果是:
    sailorsailor(小小流浪者)
    我想楼主是不是想描述这个需求,表中有很多name ,各自对应date
    现在想取 各个name 对应的最大的date 的记录
    那SQL就不是ls几位的答案了