SqlServer CTE遞歸共用表達式用法

WITH cte_test
AS(
SELECT AreaID,AreaName FROM dbo.Area WHERE AreaParentID=0
UNION ALL
SELECT a.AreaID,a.AreaName FROM dbo.Area a JOIN cte_test c ON a.AreaParentID=c.AreaID
)
SELECT * FROM cte_test

指定臨時命名的結果集,這些結果集稱爲公用表表達式 (CTE)。公用表表達式可以包括對自身的引用。這種表達式稱爲遞歸公用表表達式

對於遞歸公用表達式來說,實現原理也是相同的,同樣需要在語句中定義兩部分:

  •    基本語句
  •    遞歸語句

   在SQL這兩部分通過UNION ALL連接結果集進行返回:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章