zoukankan      html  css  js  c++  java
  • T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)

    -- 查找所有父节点
    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://write.blog.csdn.net/postedit/7869241

  • 相关阅读:
    es5中,一个在js中导入另一个js文件。
    移动端字体小于12号字的时候,line-height居中的问题
    初学者都能懂得 Git 说明
    一探 Vue 数据响应式原理
    文件的命名规则
    Vue 的 watch 和 computed 有什么关系和区别?
    MVC 与 Vue
    博客园皮肤设置
    java使用run和start后的线程引用
    Python改变一行代码实现二叉树前序、中序、后序的迭代遍历
  • 原文地址:https://www.cnblogs.com/yinghuanblog/p/5205265.html
Copyright © 2011-2022 走看看