这一章最重要的就是那个SQL处理顺序了:
(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (6) WITH {CUBE | ROLLUP} (7) HAVING <having_condition> (10) ORDER BY <order_by_list>
其中几个细节,如下:
三值逻辑:TRUE、FALSE和UNKNOWN,其中UNKNOWN的运算尤其值得注意(查询筛选器on、where和having将UNKNOWN视为FALSE;Check约束中的UNKNOWN视为True)。
Where中不能使用聚合筛选器,因为Where在Group之前。
步骤1-3会循环执行,直到所有外部表被遍历过。
On和Where的区别
Group By All的用法
Order By返回一个游标
本章的最后概述了SQL2005的几个新语法,详细在4、5、6章讨论:
表运算符:Join(原先就有)、Apply、Pivot、Unpivot,
Over子句
集合操作(Except和Intersect)