Oracle 获取前几行数据问题的陷阱

查询用户数据表,需要根据时间正序排序,然后获取时间最早的前三条数据,是不是第一印象想这么写:

select * from users where rownum<4 order by datatime asc

哈哈,这就错了,因为oracle会先去前三条数据,然后再按照时间排序,你是得不到正确结果的,应该先排序,再获取数据

select * from (select y.* from users y order by y.datatime asc) where rownum<4

上一篇:Android JNI 之 JNIEnv 解析


下一篇:ERP实施规范化及示例——邮件沟通