-- 查找所有父节点
with tab as
(
select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=316--子节点
union all
select b.Type_Id,b.ParentId,b.Type_Name
from
tab a,--子节点数据集
Sys_ParamType_V2_0 b --父节点数据集
where a.ParentId=b.Type_Id --子节点数据集.parendID=父节点数据集.ID
)
select * from tab;
-- 查找所有子节点
with tab as
(
select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=1--父节点
union all
select b.Type_Id,b.ParentId,b.Type_Name
from
tab a,--父节点数据集
Sys_ParamType_V2_0 b--子节点数据集
where b.ParentId=a.Type_Id --子节点数据集.ID=父节点数据集.parendID
)
select * from tab;
--查找从子节点到定级节点的路径
with tab as
(
select Type_Id,ParentId,Type_Name,cast(Type_Id as varchar(100)) as fulltypeid
from SKU_ProductType where Type_Id=423--子节点
union all
select
b.Type_Id,b.ParentId,b.Type_Name,
cast(a.fulltypeid+','+cast(b.Type_Id as nvarchar(100)) as varchar(100)) as fulltypeid
from
tab a,--子节点数据集
SKU_ProductType b --父节点数据集
where a.ParentId=b.Type_Id --子节点数据集.parendID=父节点数据集.ID
)
select * from tab ;
--------------结果--------------
423 410 蜂花粉 423
410 347 蜂产品 423,410
347 5 营养食品 423,410,347
5 0 健康保健 423,410,347,5
T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
最新推荐文章于 2023-03-10 11:30:30 发布
本文介绍了使用SQL的递归查询方法来查找数据库中的父子节点关系。通过具体实例展示了如何查询所有父节点、所有子节点及从子节点到顶级节点的路径。这些查询对于理解复杂的数据层级结构非常有用。

&spm=1001.2101.3001.5002&articleId=78591921&d=1&t=3&u=27c981a3944a4fd6b11886655a380b6d)
9994

被折叠的 条评论
为什么被折叠?



