1.一个通用的格式如下:
--rownum 是记录序号(1,2,3...),
--注意:如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序。
SELECT * FROM
(
SELECT A.*, rownum r FROM
(
SELECT * FROM table_name ORDER BY PubTime DESC
--排序只能写在这里,不能写在外面,要特别小心。
) A
WHERE rownum <= 10
) B
WHERE r > 5;
2.如果不需要排序,则可以少一层嵌套:
select * from
(
select rownum r,tablename.* from tablename
--这里就算有排序,事实上也没用。
)
where r between 10 and 20;
3.简单的查找最大值或最小值时,也可以这样:
--取最大的
select * from
(
select * from table_name order by id desc,place_id desc
)
where rownum<5;
--取最小的
select * from
(
select * from table_name order by id asc,place_id asc
)
where rownum<5;
从一篇CSDN博客上找到的,觉得挺有用,所以自己记下来。