Hive SQL 解决方案 - 资产库_特殊季_特殊年

2021年3月5日 33点热度 0条评论 来源: Splicing
T-SQL逻辑查询的各个阶段(编号代表顺序)
(5)SELECT DISTINCT TOP(<top_specification>) <select_list>                      
(1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate> 
(2)WHERE <where_predicate> 
(3)GROUP BY <group_by_specification> 
(4)HAVING <having_predicate> 
(6)ORDER BY <order_by_list>
T-SQL在查询各个阶级分别干了什么: 
(1)FROM 阶段 
    FROM阶段标识出查询的来源表,并处理表运算符。在涉及到联接运算的查询中(各种join),主要有以下几个步骤: 
  a.求笛卡尔积。不论是什么类型的联接运算,首先都是执行交叉连接(cross join),求笛卡儿积,生成虚拟表VT1-J1。 

      b.ON筛选器。这个阶段对上个步骤生成的VT1-J1进行筛选,根据ON子句中出现的谓词进行筛选,让谓词取值为true的行通过了考验,插入到VT1-J2。 

     c.添加外部行。如果指定了outer join,还需要将VT1-J2中没有找到匹配的行,作为外部行添加到VT1-J2中,生成VT1-J3。 

    经过以上步骤,FROM阶段就完成了。概括地讲,FROM阶段就是进行预处理的,根据提供的运算符对语句中提到的各个表进行处理(除了join,还有apply,pivot,unpivot)
    原文作者:Splicing
    原文地址: https://blog.csdn.net/m0_49447718/article/details/114161271
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。