Oracle SQL子句评估顺序
发布时间:2021-03-31 21:07:29 所属栏目:站长百科 来源:网络整理
导读:在Oracle中,首先评估哪些子句类型?如果我有以下(假装….代表有效的表达和关系名称),评估的顺序是什么? SELECT ...FROM .....WHERE ........GROUP BY ...........HAVING .............ORDER BY ................ 我的印象是最后评估了SELECT子句,但除此之外
在Oracle中,首先评估哪些子句类型?如果我有以下(假装….代表有效的表达和关系名称),评估的顺序是什么? SELECT ... FROM ..... WHERE ........ GROUP BY ........... HAVING ............. ORDER BY ................ 我的印象是最后评估了SELECT子句,但除此之外我一无所知. 解决方法无法始终最后评估选择列表,因为ORDER BY可以使用在选择列表中定义的别名,因此必须在之后执行它们.例如:SELECT foo+bar foobar FROM table1 ORDER BY foobar 我会说,一般来说,执行的顺序可能是这样的: >来自 可以交换GROUP BY和WHERE子句而不更改结果,HAVING和ORDER BY也可以. 实际上事情更复杂,因为数据库可以根据不同的执行计划对执行重新排序.只要结果保持不变,它的执行顺序无关紧要. 另请注意,如果为ORDER BY子句选择了索引,则从磁盘读取行时,行可能已按正确顺序排列.在这种情况下,ORDER BY子句根本没有真正执行. (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |