加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

在oracle SQL语句中结合order by子句使用rownum

发布时间:2021-01-16 21:32:25 所属栏目:站长百科 来源:网络整理
导读:以下两个SQL语句中的哪一个将返回所需的功效集(即状态= 0和最高StartTimes的十行)? 两个语句是否老是返回沟通的功效集(StartTime是独一的)? SELECT * FROM MyTable WHERE Status=0 AND ROWNUM = 10 ORDER BY StartTime DESCSELECT * FROM ( SELECT * FROM

以下两个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对这些随机行举办排序,这绝对不是我想要的.
按照我在that answer中学到的,第二个语句的order by子句是多余的,可以通过优化器删除,这也不是我想要的.

我问一个similar question在SQLite数据库的查询中隐含限定子句,而且有乐趣领略与oracle db一路行使的上述语句(行使limit Vs rownum)的任何差别.

办理要领

您的第二个查询将起浸染

由于在第一此中,选择了具有状态0的前十行,然后在这种环境下完成了次序,所获取的前十行不必要处于最高次序

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读