公用表表達式 (CTE) 可以認為是在單個 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 語句的執行範圍內定義的臨時結果集。公用表表達式可以包括對自身的引用,這種表達式稱為遞歸公用表表達式。
創建遞歸查詢。有關詳細信息,請參閱使用公用表表達式的遞歸查詢。
在不需要常規使用視圖時替換視圖,也就是說,不必將定義存儲在元數據中。
啟用按從標量嵌套 select 語句派生的列進行分組,或者按不確定性函數或有外部訪問的函數進行分組。
在同壹語句中多次引用生成的表。
MSDN上對CTE的介紹
T-SQL查詢進階--詳解公用表表達式(CTE)
CTE 的基本語法結構如下:
WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
--只有在查詢定義中為所有結果列都提供了不同的名稱時,列名稱列表才是可選的。
--運行 CTE 的語句為:
SELECT <column_list> FROM expression_name;
即三個部分:
公用表表達式的名字(在WITH關鍵字之後)
查詢的列名(可選)
緊跟AS之後的SELECT語句(如果AS之後有多個對公用表的查詢,則只有第壹個查詢有效)