SQL公用表达式(CTE)、递归

共同表达式

临时命名的结果集。即把查询的结果当作一个结果集然后命令。
它可以包括自己自身的引用,这样的表达式可以称为递归公用表表达式
它分为两个部分:

  • 基本语句
  • 递归语句

理论不多说,下面我们看一个例子:

例子

构造一个这样的关系
在这里插入图片描述
我们可以构造一个表格:
在这里插入图片描述
假设我们现在有这么一个需求:
查找爸爸的子孙和后代:

with CTE as(
select id,parentId,name from family where name='爸爸'
union all 
select family.id,family.parentId,family.name from family 
 join CTE  on  family.parentId=CTE.id
) 
select * from CTE

可以通过上面的语句
先查询到爸爸+我+哥哥,然后递归查询+侄子,然后再递归查询没有内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值