直接上可行的方案
SELECT * FROM (SELECT B.*,ROWNUM RN2 FROM (SELECT ROWNUM RN1,A.* FROM table_name A) B ORDER BY RN1 DESC) WHERE ROWNUM<11;
直接修改上面红色的,将你想查询的表替换table_name即可
步骤分析
1.通过rownum对数据库的记录进行编号
SELECT ROWNUM RN1,A.* FROM table_name A;
这个sql可以查询到带有编号的表数据
2.通过RN1的标记进行倒序排序
SELECT B.*,ROWNUM RN2 FROM (SELECT ROWNUM RN1,A.* FROM table_name A) B ORDER BY RN1 DESC;
这个sql可以将上面的数据倒序排列
3.将倒序排列的数据找到前十条,就是一开始准备查询的后十条
SELECT * FROM (SELECT B.*,ROWNUM RN2 FROM (SELECT ROWNUM RN1,A.* FROM table_name A) B ORDER BY RN1 DESC) WHERE ROWNUM<11;