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

posted @ 2023-09-11 09:43  极客船长  阅读(23)  评论(0编辑  收藏  举报