日期:2014-05-16 浏览次数:20912 次
1,先按照“年月日”来排序,使用降序,保证当前天为第一条 2,然后再每一天中,按照时间来排序,使用升序,保证最早的日期为第一条。 好像就可以了吧: sql如下: select * from ( select * from table1 order by trunc(create_date,'yyyyMMdd') desc,trunc(create_date,'hh24miss') asc ) where rownum < 6 或者 select * from ( select * from table1 order by to_char(create_date,'yyyyMMdd') desc,to_char(create_date,'hh24miss') asc ) where rownum < 6 在或者,使用分析函数,如楼上这位,应该都可以吧
------解决方案--------------------
select * from (
select info_id,create_date,rownum rn,rnb from
(select info_id,create_date, rownumber()over(partition by trunc(create_date,'yyyymmdd') order by create_date) rnb from tb) order by trunc(create_date,'yyyymmdd') desc,rnb
)
where rn<=5
------解决方案--------------------