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连接结果集进行返回:

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