首页 新闻 搜索 专区 学院

一个简单的Oracle排序问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2022-03-12 12:26

查询一个表里的数据,按照插入日期排序(INSERT_DATE)获取前20条数据。该表的主键是ID(COLLECT_ID )。

SELECT COLLECT_TYPE,COLLECT_CODE,COLLECT_DESC,INSERT_DATE FROM SRBIMSZYDCOLLECTERROR A,(
SELECT ROW_NUMBER() OVER (ORDER BY INSERT_DATE DESC,COLLECT_TYPE,COLLECT_CODE) RN,
COLLECT_ID from SRBIMSZYDCOLLECTERROR ) T 
WHERE T.COLLECT_ID=A.COLLECT_ID
AND RN BETWEEN 1 and 20

目前该语句在绝大部分环境中,最终结果都是按照日期排序后的前20条。
但在某一环境中,是按照日期排序后取得20条后,最终结果按照ID的正序排列返回。

绝大部分示意

ID INSERT_DATE
03 2022-03-12
01 2022-03-11
02 2022-03-10

某一特殊环境

ID INSERT_DATE
01 2022-03-11
02 2022-03-10
03 2022-03-12
Peter.Xu的主页 Peter.Xu | 初学一级 | 园豆:13
提问于:2022-03-12 11:20
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册