T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)

简介: -- 查找所有父节点with tab as( select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=316--子节点 union all select b.
 -- 查找所有父节点
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

转载于http://blog.csdn.net/killcwd/article/details/50409352

目录
相关文章
|
1天前
|
SQL 前端开发
基于jeecgboot复杂sql查询的列表自定义列实现
基于jeecgboot复杂sql查询的列表自定义列实现
|
5天前
|
SQL 数据库
SQL数据库基础语法-查询语句
SQL数据库基础语法-查询语句
|
5天前
T-sql 高级查询( 5*函数 联接 分组 子查询)
T-sql 高级查询( 5*函数 联接 分组 子查询)
|
5天前
|
机器学习/深度学习
T-sql 各种查询命令
T-sql 各种查询命令
|
11天前
|
SQL 关系型数据库 数据库
SQL 42501: Postgresql查询中的权限不足错误
SQL 42501: Postgresql查询中的权限不足错误
|
12天前
|
SQL Oracle 关系型数据库
常见 SQL 注入绕过方法
常见 SQL 注入绕过方法
|
12天前
|
SQL Oracle 关系型数据库
利用 SQL 注入提取数据方法总结
利用 SQL 注入提取数据方法总结
|
12天前
|
SQL 关系型数据库 MySQL
利用 SQL 注入识别数据库方法总结
利用 SQL 注入识别数据库方法总结
|
12天前
|
SQL 数据库
常见寻找 SQL 注入方法总结
常见寻找 SQL 注入方法总结
|
12天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之在sql 里嵌套查询时,查询条件带有instr时报错,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。