千家信息网

SQL Server如何通过with as方法查询树型结构

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,SQL Server如何通过with as方法查询树型结构,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、with as 公用表表
千家信息网最后更新 2026年11月01日SQL Server如何通过with as方法查询树型结构

SQL Server如何通过with as方法查询树型结构,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、with as 公用表表达式

  类似VIEW,但是不并没有创建对象,WITH AS 公用表表达式不创建对象,只能被后随的SELECT语句,其作用:

  1. 实现递归查询(树形结构)

  2. 可以在一个语句中多次引用公用表表达式,使其更加简洁

二、非递归的公共表达式

  可以是定义列或自动列和select into 效果差不多

--指定列with withTmp1 (code,cName)as( select id,Name from ClassUnis)select * from withTmp1--自动列with withTmp2 as( select * from ClassUnis where Author = 'system')select * from withTmp2

三、递归的方式

  通过UNION ALL 连接部分。通过连接自身whit as 创建的表达式,它的连接条件就是递归的条件。可以从根节点往下查找,从子节点往父节点查找。只需要颠倒一下连接条件。例如代码中条件改为t.ID = c.ParentId即可

with tree as( --0 as Level 定义树的层级,从0开始 select *,0 as Level  from ClassUnis where ParentId is null union all --t.Level + 1每递归一次层级递增 select c.*,t.Level + 1  from ClassUnis c,tree t where c.ParentId = t.ID --from ClassUnis c inner join tree t on c.ParentId = t.ID)select * from tree where Author not like'%/%'

还能通过option(maxrecursion Number) 设置最大递归次数。例如上诉结果Level 最大值为2表示递归两次。我们设置其值为1

with tree as( select *,0 as Level from ClassUnis where ParentId is null union all select c.*,t.Level + 1 from ClassUnis c,tree t where c.ParentId = t.ID)select * from tree where Author not like'%/%' option(maxrecursion 1)

关于SQL Server如何通过with as方法查询树型结构问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

递归 表达式 方法 结构 查询 条件 节点 问题 公用 最大 对象 层级 更多 语句 帮助 解答 易行 简洁 差不多 简单易行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 互联网科技公司的优势 上海挚品互联网科技 互联网科技公司电话 奇酷互联网科技 互联网金融科技创新 赫美联合互联网科技 互联网科技小额贷款 湖南洣水互联网科技有限公司扣款 互联网之后的科技是什么 互联网还是高科技吗 新兴科技互联网创新大赛颁奖典礼 互联网科技与大数据专业 科技类公司包括互联网吗 迪庆互联网科技招生 华夏恒生互联网科技013171 工业互联网展湾科技股份有限公司 北京市互联网新科技 上海创道互联网络科技有限公司 互联网界的黑科技 中智农互联网科技 互联网科技公司税收优惠 互联网 新科技 互联网科技大会案例 盛创互联网科技有限公司 武汉健翔互联网络科技有限公司 互联网与医疗科技 互联网媒体平台算高科技产业 河南住房之家互联网科技 济南小医互联网科技有限公司招聘
0