CTE 公用表表示式

2022-08-31 04:06:08 字數 918 閱讀 4367

可以認為是在單個 select、insert、update、delete 或 create view 語句的執行範圍內定義的臨時結果集。

cte 與派生表類似,具體表現在不儲存為物件,並且只在查詢期間有效。

與派生表的不同之處在於,cte 可自引用,還可在同一查詢中引用多次。   

cte可用於:   

1.建立遞迴查詢(我個人認為cte最好用的地方)   

2.在同一語句中多次引用生成的表   

cte優點:   

使用 cte 可以獲得提高可讀性和輕鬆維護複雜查詢的優點。   

查詢可以分為單獨塊、簡單塊、邏輯生成塊。

之後,這些簡單塊可用於生成更複雜的臨時 cte,直到生成最終結果集。   

cte可使用的範圍:   

可以在使用者定義的例程(如函式、儲存過程、觸發器或檢視)中定義 cte。   

英文全稱(common table expression)

下面看乙個簡單的cte例題:   

把test表中salary最大的id記錄儲存在test_cte中,再呼叫   

with test_cte(id,salary)   

as   

(   

select

id ,max(salary)   

from test   

group by id   

)   

select * from test_cte   

由上面例題可以看出:   

cte 由表示 cte 的表示式名稱、可選列列表和定義 cet 的查詢組成。   

定義 cte 後,可以在 select、insert、update 或 delete 語句中對其進行引用,

就像引用表或檢視一樣。   

簡單的說cte可以替代臨時表和表變數的功能。

公用表表示式CTE

公用表表示式cte表面上和派生表非常相似,看起來只是語義上的區別。但和派生表比較起來,cte具有幾個優勢 第一,如果須要在乙個cte中引用另乙個cte,不需要像派生表那樣巢狀,相反,只要簡單地在同乙個with子句中定義多個cte,並用逗號把它們分隔開。每個cte可以引用在它前面定義的所有cte。而外...

公用表表示式 CTE

在編寫t sql 時,往往需要臨時儲存某些結果集。前面我們已經廣泛使用和介紹了兩種臨時儲存結果集的方法 臨時表和表變數。除此之外,還可以使用公用表表示式的方法。公用表表示式 common table expression 是sql server2005版本的引入的乙個特性。cte可以看組是乙個臨時的...

公用表表示式 CTE

在編寫t sql 時,往往需要臨時儲存某些結果集。前面我們已經廣泛使用和介紹了兩種臨時儲存結果集的方法 臨時表和表變數。除此之外,還可以使用公用表表示式的方法。公用表表示式 common table expression 是sql server2005版本的引入的乙個特性。cte可以看組是乙個臨時的...