SqlServer中怎么利用公用表表达式实现无限级树形构建
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,SqlServer中怎么利用公用表表达式实现无限级树形构建,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SQL Server 200
千家信息网最后更新 2025年01月24日SqlServer中怎么利用公用表表达式实现无限级树形构建
SqlServer中怎么利用公用表表达式实现无限级树形构建,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式
公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被引用任意次),并且在该查询生存期间将一直生存。可以使用CTE来执行递归操作。
DECLARE @Level INT=3;WITH cte_parent(CategoryID,CategoryName,ParentCategoryID,Level)AS( SELECT category_id,category_name,parent_category_id,1 AS Level FROM TianShenLogistic.dbo.ProductCategory WITH(NOLOCK) WHERE category_id IN ( SELECT category_id FROM TianShenLogistic.dbo.ProductCategory WHERE parent_category_id=0 ) UNION ALL SELECT b.category_id,b.category_name,b.parent_category_id,a.Level+1 AS Level FROM TianShenLogistic.dbo.ProductCategory b INNER JOIN cte_parent a ON a.CategoryID = b.parent_category_id)SELECT CategoryID AS value, CategoryName as label, ParentCategoryID As parentId, LevelFROM cte_parent WHERE Level <=@Level;public static ListGetLogisticsCategoryByParent(int? level) { if (level < 1) return null; var dataResult = CategoryDA.GetLogisticsCategoryByParent(level); var firstlevel = dataResult.Where(d => d.level == 1).ToList(); BuildCategory(dataResult, firstlevel); return firstlevel; } private static void BuildCategory(List allCategoryList, List categoryList) { foreach (var category in categoryList) { var subCategoryList = allCategoryList.Where(c => c.parentId == category.value).ToList(); if (subCategoryList.Count > 0) { if (category.children == null) category.children = new List (); category.children.AddRange(subCategoryList); BuildCategory(allCategoryList, category.children); } } }
关于SqlServer中怎么利用公用表表达式实现无限级树形构建问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
表达式
公用
问题
查询
树形
更多
递归
帮助
解答
易行
简单易行
作用
内容
子句
小伙
小伙伴
方法
知识
篇文章
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
部队手机网络安全ppt23页
魔兽世界部落pve服务器
天津人人车网络技术怎么样
青少年玩网络安全危险事件
网络安全法设置恶意程序
加强对市州网络安全指导
外国语言学数据库
戴尔机架式服务器维修店
服务器安全行业
互联网数据库材料
icio数据库
长春正规网络技术诚信经营
近期上海市医院网络安全
ff11与服务器失去联系
腾讯云服务器公网ip连接
网络安全的体系构建包括哪些
网信办互联网领先科技
mac dhcp服务器
光通信网络安全的图片
赋码软件开发需要多长时间
辽宁信息化软件开发服务有哪些
无线网络技术课程设计
过好网络安全观
网络安全交易事件
全诚科技互联网
深圳软件开发5年后待遇
武汉大学国家网络安全学院宣传片
网易mc怎么开服务器
网络安全技术与实践期末题
景县网络安全协调联动