oracle sql语句中 先执行where还是order by

 我来答
microhelps
推荐于2018-03-19 · 超过18用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:28.9万
展开全部
从感觉上来说,是先执行WHERE查询符合条件的结果集,再执行ORDER BY,把查询出来的结果集进行排序。

此问题设计到RDBMS内部实现及其查询优化的问题,你执行一条SQL语句时,RDBMS的SQL解析器会生成相应的执行树,按照执行树的顺序对底层存储的数据操作,而后返回处理结果。这里先执行哪一个子句、后执行哪一个子句是有SQL解析器决定的,SQL解析器会给出一条它认为最优的执行树。
鬼谷子教主
2015-04-23 · TA获得超过2496个赞
知道大有可为答主
回答量:1996
采纳率:88%
帮助的人:566万
展开全部
先WHERE,过滤出数据,形成结果集;
ORDER BY是已经有了结果集,再作排序
追问
但是我在实际的操作环境下根据结果反映出来的是先执行的order by,这是为什么呢
追答
不是。
*如果ORDER BY的字段正好有index,在此过程中会直接使用,因此最终不再执行ORDER BY(隐含着已经排序,这是一种DB Engine自己的优化).
* 如果没有对应的索引,那么就是上述情况(最后作排序)

你可以举例来看看,如何反映出“ORDER BY先执行”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式