--1:无ORDER BY排序的写法。(效率最高)
--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!)
SELECT *
FROM (SELECT ROWNUM AS rowno, t.*
FROM temp t
WHERE hire_date BETWEEN TO_DATE ('20191201', 'yyyymmdd')
AND TO_DATE ('20191231', 'yyyymmdd')
AND ROWNUM <= 20) table_temp
WHERE table_temp.rowno >= 10;
--2:有ORDER BY排序的写法。(效率最高)
--(经过测试,此方法随着查询范围的扩大,速度也会越来越慢哦!)
SELECT *
FROM (SELECT tt.*, ROWNUM AS rowno
FROM ( SELECT t.*
FROM temp t
WHERE hire_date BETWEEN TO_DATE ('20191201', 'yyyymmdd')
AND TO_DATE ('20191231', 'yyyymmdd')
ORDER BY create_time DESC, temp_no) tt
WHERE ROWNUM <= 20) table_temp
WHERE table_temp.rowno >= 10;
本文探讨了两种SQL分页查询的方法:一种是无ORDER BY排序的高效查询,适用于大量数据场景;另一种是有ORDER BY排序的查询,适合对结果排序有要求的场景。通过对比,文章详细分析了两者的性能差异及适用范围。
771

被折叠的 条评论
为什么被折叠?



