SQL Server如何通过with as方法查询树型结构
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,SQL Server如何通过with as方法查询树型结构,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、with as 公用表表
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
计算机网络技术与应用实习周记
网页随机读取数据库
湘潭定制软件开发
数据库无法加载或恢复
这个服务器和平吗英语
陕西软件开发定制价位
orcal有数据库名的概念
沭阳巨型网络技术是什么
电脑服务器招标文件
vsphere服务器虚拟化
网络安全信息评估
吕梁网络技术产品介绍
速达 数据库连接失败
高校数据库
公有云服务器
dao 连接数据库
深圳软件开发经理薪水
终端维护转网络安全工程师
网络安全知识竞赛的必要性
数据库sql update
华为网络安全培训
嵌入式软件开发相关技能
网络安全法规定网络运营应当
国象数据库
网络安全大会上海
如何营造良好的网络安全环境
计算机网络技术资料文章
网络安全用什么语言
公有云服务器
网络安全应急响应分为