楼上的答案肯定不对, 因为 rownum 伪列是 sql 语句查询结果集的编号, 如果有数据被查出来那么 rownum 一定是从 1 开始的, 不可能从 3 开始, 所以select * from table
where rownum between n and n+3 永远返回零条记录。
正确的做法:
select * from table where rownum <= n+3 minus select * from table where rownum <3;
select * from table where rownum <= n+3 minus select * from table where rownum
select * from table
where rownum between n and n+3
二楼的童鞋回答的是对的。