为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:
【CPU】:
【问题描述】*:Microsoft SQL Server联机丛书中关于T-SQL查询语句中各子句执行顺序有如下说明,请问DM_SQL查询语句中各子句的逻辑处理顺序是什么呢?未在语言使用手册中找到。
以下步骤显示 SELECT 语句的逻辑处理顺序(即绑定顺序)。 此顺序确定在一个步骤中定义的对象何时可用于后续步骤中的子句。 例如,如果查询处理器可以绑定到(访问)在 FROM 子句中定义的表或视图,则这些对象及其
列可用于所有后续步骤。 相反,因为 SELECT 子句处于步骤 8,所以,在该子句中定义的任何列别名或派生列都无法被之前的子句引用。 不过,它们可由 ORDER BY 子句之类的后续子句引用。 该语句的实际物理执行由查询
处理器确定,因此顺序可能与此列表不同。
1.FROM
2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. WITH CUBE 或 WITH ROLLUP
7. HAVING
8. SELECT
9. DISTINCT
10. ORDER BY
11. TOP
当SELECT语句被DBMS执行时,其子句会按照固定的先后顺序执行:
(1)FROM 子句。
(2)WHERE 子句。
(3)GROUP BY 子句。
(4)HAVING 子句。
(5)SELECT 子句。
(6)ORDER BY 子句。