首页 > Linux操作系统 > Linux操作系统 > 排序后,查询某个范围的记录
有表ord(ordseq, ordno, ctrpty, orddt), 其中ordseq为number型,ordno和ctrpty为varchar2型,而orddt为日期型,查询显示ord表按ordseq排序后第21至30条记录
首先按ordseq排序查询ord表,看都有什么内容
SELECT ord.ordseq, ord.ordno, ord.ctrpty, ord.orddt FROM ORD ORDER BY ordseq;
最终实现此功能的查询语句为:
select *
from (select res1.ordseq, res1.ordno, res1.ctrpty, res1.orddt, rownum as sortid
from (select ord.ordseq, ord.ordno, ord.ctrpty, ord.orddt from ord order by ordseq) res1) res2
where res2.sortid > 20
and res2.sortid < 31
其中rownum必需要用别名,否则写成res2.rownum会报错,而直接写成rownum得到的结果为空,还有就是rownum不能跟order by 在同一查询中,否则得到的结果不对
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7865774/viewspace-609600/ ,如需转载,请注明出处,否则将追究法律责任。