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 @   极客船长  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示