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

2025-04-28 07:42:20
推荐回答(2个)
回答1:

从感觉上来说,是先执行WHERE查询符合条件的结果集,再执行ORDER BY,把查询出来的结果集进行排序。

此问题设计到RDBMS内部实现及其查询优化的问题,你执行一条SQL语句时,RDBMS的SQL解析器会生成相应的执行树,按照执行树的顺序对底层存储的数据操作,而后返回处理结果。这里先执行哪一个子句、后执行哪一个子句是有SQL解析器决定的,SQL解析器会给出一条它认为最优的执行树。

回答2:

先WHERE,过滤出数据,形成结果集;
ORDER BY是已经有了结果集,再作排序