時間:2024-02-08 11:17作者:下載吧人氣:17
在編寫T-SQL代碼時,往往需要臨時存儲某些結果集。前面我們已經廣泛使用和介紹了兩種臨時存儲結果集的方法:臨時表和表變量。除此之外,還可以使用公用表表達式的方法。
公用表表達式(Common Table Expression)是SQL Server2005版本的引入的一個特性。CTE可以看組是一個臨時的結果集,可以再接下來來的一個SELECT,INSERT,UPDATE,DELETE,MERGE語句中多次引用。
使用公用表達式CTE可以讓語句更加清晰簡練。與公用表達式作用類似的還有臨時表和表變量。下面給出三種方法的對比。
根據微軟對CTE好處的描述,可以歸結為四點:
WITH AS-做子查詢部分(subquery factoring)。
它用于定義一個SQL片段,該片段會被是整個SQL語句所用到。如果WITH AS所以定的表名被調用兩次以上,則優化器會自動將WITH AS所獲取的數據放入臨時表里,如果只是被調用一次,則不會。
可以通過materialize將WITH AS短語里的數據強制放入全局臨時表里。
WITH AS可以被緊跟著的一條SQL語句所使用多次,但不能被緊跟著的多條SQL語句使用。
WITH B AS
網友評論