在Oracle怎样查询表中的top10条记录呢?
select * from test where rownum <=10 ----说明:rownum只能用于运算符就要用到嵌套查询。
下面是关于rownum的介绍:
Rownum和row_number()、over()的使用
ROWNUM是Oracle从8开始提供的一个伪列,是把SQL出来的结果进行编号,始终从1开始,常见的用途就是用来分页输出.
比如
SELECT * FROM torderdetail a WHERE ROWNUM <= 10
这条语句就是输出前10条纪录,在这里用途上类似于sql sever的top,不过rownum对于指定编号区间的输出应该说更强大
SELECT *
FROM (SELECT a.*, ROWNUM rn FROM torderdetail a)
WHERE rn >= 10 AND rn <= 20
这条语句即是输出第10到第20条纪录,这里之所以用rownum rn,是把rownum转成实例,因为rownum本身只能用 <=的比较方式,只有转成实列,这样就可做 >=的比较了。
在实际用途中,常常会要求取最近的几条纪录,这就需要先对纪录进行排序,后再取rownum <=某个数值
一般常见的
SELECT *
FROM (SELECT a.* FROM torderdetail a ORDER BY order_date DESC)
WHERE ROWNUM <= 10