在oracle SQL语句中结合order by子句使用rownum
发布时间:2021-01-16 12:47:15 所属栏目:百科 来源:网络整理
导读:以下两个SQL语句中的哪一个将返回所需的结果集(即状态= 0和最高StartTimes的十行)? 两个语句是否总是返回相同的结果集(StartTime是唯一的)? SELECT * FROM MyTable WHERE Status=0 AND ROWNUM = 10 ORDER BY StartTime DESCSELECT * FROM ( SELECT * FRO
以下两个SQL语句中的哪一个将返回所需的结果集(即状态= 0和最高StartTimes的十行)? 两个语句是否总是返回相同的结果集(StartTime是唯一的)? SELECT * FROM MyTable WHERE Status=0 AND ROWNUM <= 10 ORDER BY StartTime DESC SELECT * FROM ( SELECT * FROM MyTable WHERE Status=0 ORDER BY StartTime DESC ) WHERE ROWNUM <= 10 背景 我的DBAdmin告诉我,第一个语句将首先将表限制为10行,而不是按StartTime对这些随机行进行排序,这绝对不是我想要的. 我问一个similar question在SQLite数据库的查询中隐含限制子句,并且有兴趣理解与oracle db一起使用的上述语句(使用limit Vs rownum)的任何差异. 解决方法您的第二个查询将起作用因为在第一个中,选择了具有状态0的前十行,然后在这种情况下完成了顺序,所获取的前十行不需要处于最高顺序 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |