SQL Server 2005公用表表達式(CTE)

簡介html

  對於SELECT查詢語句來講,一般狀況下,爲了使T-SQL代碼更加簡潔和可讀,在一個查詢中引用另外的結果集都是經過視圖而不是子查詢來進行分解的。可是,視圖是做爲系統對象存在數據庫中,那對於結果集僅僅須要在存儲過程或是用戶自定義函數中使用一次的時候,使用視圖就顯得有些奢侈了。數據庫

    公用表表達式(Common Table Expression)是SQL SERVER 2005版本以後引入的一個特性。CTE能夠看做是一個臨時的結果集,能夠在接下來的一個SELECT,INSERT,UPDATE,DELETE,MERGE語句中被屢次引用。使用公用表達式能夠讓語句更加清晰簡練。函數

     除此以外,根據微軟對CTE好處的描述,能夠歸結爲四點:spa

  •  能夠定義遞歸公用表表達式(CTE)
  •  當不須要將結果集做爲視圖被多個地方引用時,CTE能夠使其更加簡潔
  •  GROUP BY語句能夠直接做用於子查詢所得的標量列
  •  能夠在一個語句中屢次引用公用表表達式(CTE)

定義.net

公用表表達式(CTE),是一個在查詢中定義的臨時命名結果集將在from子句中使用它。每一個CTE僅被定義一次(但在其做用域內能夠被引用任意次),而且在該查詢生存期間將一直生存。能夠使用CTE來執行遞歸操做。code

包含三部分:htm

  1.   公用表表達式的名字(在WITH以後)
  2.   所涉及的列名(可選)
  3.   一個SELECT語句(緊跟AS以後)

建立的語法是:對象

with <name of you cte>(<column names>)
as(
<actual query>
)
select * from <name of your cte>

編輯推薦blog

SQL Server2005雜談(1):使用公用表表達式(CTE)簡化嵌套SQL遞歸

SQL Server2005雜談(2):公用表表達式(CTE)的遞歸調用

T-SQL查詢進階--詳解公用表表達式(CTE)

T-SQL 公用表表達式(CTE)

使用公用表表達式(msdn)

關於SQL中CTE(公用表表達式)(Common Table Expression)的總結

相關文章
相關標籤/搜索