select * from exam_result where id in(select top 3 id from exam_result) and id not in(select top 6 id from exam_result);
在exam_result表里查询第三条到第六条数据
用row_number(),然后取行号>=3 <=6
oracle 使用ROWNUM记录行号,先查出行号,再查询3-6之间的数据
select * from
(select ROWNUM ROWNUMA,A.* from exam_result A )
where ROWNUMA BETWEEN 3 AND 6 ;
这个语句可以改成:
SELECT * FROM (SELECT * FROM exam_result ORDER BY id ASC LIMIT 3) AS t1
WHERE id NOT IN (SELECT id FROM exam_result ORDER BY id ASC LIMIT 6);
这个语句在 MySQL 中可以正常运行,其它数据库可能需要稍作修改。这个语句的作用是选择 exam_result 表中按照 id 升序排列后的前三个记录,然后排除按照 id 升序排列后的前六个记录,最终返回剩下的记录。