请问一下,这个语句该怎么改呀

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之间的数据

img

select * from 
(select  ROWNUM ROWNUMA,A.* from  exam_result A  ) 
   where ROWNUMA BETWEEN 3 AND 6 ;

以下内容部分参考ChatGPT模型:


这个语句可以改成:

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 升序排列后的前六个记录,最终返回剩下的记录。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快