iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 15
0
Data Technology

SQL Server 學習日誌系列 第 15

15.WITH common table expression 一般資料表運算式

介紹

最近在撰寫 Stored Procedure 發現一個類似於 Temp Table 的資料暫存方法 :一般資料運算式。有別於temp table ,他有些使用上的限制:

  1. 不能用於 COMPUTE 與 COMPUTE BY
  2. 不能用於 ORDER BY (除了指定使用 TOP clause)
  3. 不能用於 INTO
  4. 不能用於 OPTION clause with query hints
  5. ….

而 CTE 使用情境包含

  1. 遞迴查詢
  2. 取代 view (當不需要 View 時,你不需樣去定義並儲存 View metadata)
  3. 同一句子內多次查詢相同結果資料表

範例

首先我們使用 Study4 活動資料表為例:

SELECT * FROM [Activity];

撰寫一個簡單的CTE

;WITH ActivityTable ([Id], [Subject]) AS
(
    SELECT [Id], [Subject]
      FROM dbo.[Activity]
)

SELECT * FROM ActivityTable


參考資料

  1. WITH common_table_expression (Transact-SQL) - https://technet.microsoft.com/en-us/library/ms175972(v=sql.105).aspx
  2. When to use Common Table Expression (CTE) - https://stackoverflow.com/questions/4740748/when-to-use-common-table-expression-cte

上一篇
14. CROSS APPLY 與 OUTER APPLY
下一篇
16. scripts 匯出資料表結構與資料
系列文
SQL Server 學習日誌30

尚未有邦友留言

立即登入留言