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

[SQL]T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)的更多相关文章

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

    -- 查找所有父节点with tab as( select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=316-- ...

  2. MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)

    背景说明 需求:MySQL树形结构, 根据指定的节点,获取其下属的所有子节点(包含路径上的枝干节点和叶子节点) 枝干节点:如果一个节点下还有子节点,则为枝干节点. 叶子节点:如果一个节点下不再有子节点 ...

  3. JS获取节点的兄弟,父级,子级元素的方法(js获取子级获取到换行与空格元素-FF)

    先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比. JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 < ...

  4. SQL 递归找查所有子节点及所有父节

    在SQL的树型结构中,很多时候,知道某一节点的值,需要查找该节点的所有子节点(包括多级)的功能,这时就需要用到如下的用户自定义函数. 表结构如下: ID int Dep_Type int Dep_Co ...

  5. SQL 递归查询(根据指定的节点向上获取所有父节点,向下获取所有子节点)

    --------------------01.向上查找所有父节点-----------------WITH TEMP AS (SELECT * FROM CO_Department WHERE ID= ...

  6. SQL查询树形结构的所有子节点

    如下一张表test:id name pid----------- ---------- -----------1 电器 NULL2 家电 13 冰箱 24 洗衣机 25 电脑 16 笔记本 57 平板 ...

  7. SQL SERVER 2000 遍历父子关系数据的表(二叉树)获得所有子节点 所有父节点及节点层数函数

    ---SQL SERVER 2000 遍历父子关系數據表(二叉树)获得所有子节点 所有父节点及节点层数函数---Geovin Du 涂聚文--建立測試環境Create Table GeovinDu([ ...

  8. sql实际应用-递归查询

    1.既然要谈到sql,数据库表是必须的 2.数据结构     3.获取某个节点的所有子节点     传统的写法(sql2000) 很麻烦,暂且就不写了     来看看CTE的写法 CREATE PRO ...

  9. SQL语法之初级增删改查

    SQL语法之初级增删改查 1.增 1.1插入单行 INSERT INTO [表名](列名) VALUES(列值) 语法如下: INSERT INTO bsp_Nproductclass(guid,pi ...

随机推荐

  1. html盒子铺满全屏

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. JavaScript下实现交换数组元素上下移动例子

    // 交换数组元素    var swapItems = function(arr, index1, index2) {        arr[index1] = arr.splice(index2, ...

  3. HttpsessionListener 实现在线人数统计

    最近在学servlet jsp,用的林信良先生的 jsp&servlet 这本书,在第五章有道在线人数统计的课后题完成,做一次记录. 实际效果: 一:用户类: package cc.openh ...

  4. 运维自动化 第一章 git

    一.git简单操作 4个地方: 工作区: 当前编辑的区域 缓存区: add 之后的区域 本地仓库: commit之后的区域 远程仓库 :远程的区域 简单操作: git init 初始化操作 比如我选定 ...

  5. docker-compose docker启动工具,容器互联

    简介: docker可以一条命令就运行一个配置好的服务器,很是方便. 但是也有一个问题就是,当参数比较多,映射目录比较多,映射端口比较多………… 我以前就是写个脚本,用脚本来启动,很low啊. 也见到 ...

  6. python笔记10-切片(从list或字符串中取几个元素)

    name1 = 'zcl,pyzyz'names = ['zcl','py','zyz'] #切片的意思就是从list里面或者字符串里面取几个元素#切片操作对字符串也是完全适用的 # print(na ...

  7. vs开发/IIS 遇到的问题--------笔记

    1.VS2017专业版和企业版激活密钥 Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB- ...

  8. return 返回值的用法

    #coding:utf-8 # (1)把数据返回到函数调用处 def func(): # return 1 # return "aaabb" return [1,2,3,4] re ...

  9. ceph存储集群测试方案

    --测试目的 测试ceph集群的读写性能,根据测试数据了解整个ceph集群的性能情况. --测试环境 1.8节点ceph集群环境,1台虚拟机(cpu 8核,内存8G),8k的块大小,时长2小时 2.8 ...

  10. FCC JS基础算法题(10):Falsy Bouncer(过滤数组假值)

    题目描述: 删除数组中的所有假值.在JavaScript中,假值有false.null.0."".undefined 和 NaN. 使用filter方法,过滤掉生成的 Boolea ...