--建立測試環境
Create Table A
(IDInt,
 fatherIDInt,
 NameVarchar(10)
)
Insert A Select 1,        NULL,       'tt'
Union All Select 2,        1,          'aa'
Union All Select 3,        1,          'bb'
Union All Select 4,        2,          'cc'
Union All Select 5,        2,          'gg'
Union All Select 6,        4,          'yy'
Union All Select 7,        4,          'jj'
Union All Select 8,        7,           'll'
Union All Select 9,        NULL,  'uu'
Union All Select 10,       9,         'oo'
GO
--建立函數

//取字子节点
Create Function GetChildren(@ID Int)
Returns @Tree Table (ID Int, fatherID Int, Name Varchar(10))
As
Begin
Insert @Tree Select ID, fatherID, Name From A Where fatherID = @ID
While @@Rowcount > 0
Insert @Tree Select A.ID, A.fatherID, A.Name From A A Inner Join @Tree B On A.fatherID = B.ID And A.ID Not In (Select ID From @Tree)
Return
End
GO

//取父节点

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER Function [dbo].[GetParent](@ID Int)
Returns @Tree Table (ID Int, fatherID Int, NameVar Varchar(10))
As
Begin
Insert @Tree Select ID, fatherID, NameVar From A Where ID = @ID
While @@Rowcount > 0
Insert @Tree Select A.ID, A.fatherID, A.NameVar From A A Inner Join @Tree B On A.ID = B.fatherID And A.ID Not In (Select ID From @Tree)
Return
End

--測試
Select * From dbo.GetChildren(1)

Select * From dbo.GetParent(9)
GO

转载于:https://www.cnblogs.com/aaa6818162/archive/2009/05/11/1453877.html

SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点相关推荐

  1. html dom节点取父节点,JavaScript DOM父子兄节点操作必看详解

    首先我们知道网页中的所有内容都是节点(标签.属性.文本.注释等) ,之前我们已经说过了一些元素的获取方法 比如element.getElementById(),element.querySelecto ...

  2. MFC动态建立二叉树、序列检错以及获取父节点

    根据前序+中序或中序+后序在MFC中实现动态建立二叉树. 文章目录 根据前序+中序或中序+后序在MFC中实现动态建立二叉树. 前言 一.动态建立二叉树 1.题目要求 2.具体实现 1.对话框布局 2. ...

  3. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  4. vue+element-ui之tree树形控件有关子节点和父节点之间的各种选中关系详解

    做后端管理系统,永远是最蛋疼.最复杂也最欠揍的事情,也永远是前端开发人员最苦逼.最无奈也最尿性的时刻.蛋疼的是需求变幻无穷,如同二师兄的三十六般变化:复杂的是开发难度寸步难行,如同蜀道难,难于上青天: ...

  5. 个人永久性免费-Excel催化剂功能第67波-父子结构表转换添加辅助信息之子父关系篇...

    Excel作为一款数据领域的万物互联工具,连接一切外部的多种多样的数据源.将数据带到Excel的环境中,再进行数据处理.转换.统计分析等工作,是众多表哥表姐们每天都在经历的事情. 能最快速将其他来源数 ...

  6. mysql查询父子关系树_swt 生成树[读取Mysql数据库中的父子关系表]

    数据库中的表结构: id        pid 1         0 2         1 3         1 4         2 6         2 5         4 需要生成 ...

  7. mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现

    简介:mysql5.0.94版本,该版本以及较高级的版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的 ...

  8. mysql递归查询所有上下节点_非递归打印二叉树的所有路径,保存父节点和孩子节点到底有啥差别...

    题目解读 题目要求输出二叉树的所有路径(字符串形式),乍一看很简单,不就是二叉树的遍历嘛!其实不然,首先,我们用非递归的方式(C++)解决这道题(递归在产品代码中是不允许使用的,其次定位 bug 的时 ...

  9. java连不上sql表,Java SQL“错误:关系”表_Name“不存在”

    我正在尝试将netbeans连接到我的 postgresql数据库.连接似乎有效,因为我只是连接时没有任何错误或异常,getCatalog()等方法也返回正确的答案. 但是当我尝试运行一个简单的SQL ...

最新文章

  1. 500强公司面试的经典正确与错误回答对比!
  2. X-Magic Pair gcd,剪枝(1600)
  3. [html] 你认为写出什么样的html代码才是好代码呢?
  4. OC 获取view相对位置_【全职业P4阶段世界BUFFS和药剂】BUFFS获取方法药剂自己查询出处...
  5. 这是一位拿到BAT大厂offer应届生的年终总结,那么你的呢?...
  6. [转载]linux+nginx+python+mysql安装文档
  7. Silverlight像素着色器编写简明指南 附送文字描边效果
  8. 《善用佳软:高效能人士的软件应用之道》一2.3 思维导图:思想脉络的逻辑结构...
  9. 24小时改变你的人生【转】
  10. Android手机开发课程设计之音乐播放器
  11. C语言中写保护的作用,C语言考试试题练习
  12. 微信公众号jssdk:the permission value is offline verifying
  13. BLE 技术(四)--- 链路层五种通信模式和空口协议设计 (Core_v5.2)
  14. ios 设置属性的center_iOS游戏平台Game Center成就显示设置指南
  15. Python与Anaconda、Jupyter Notebook与Pycharm
  16. html5怎么修改图片大小,HTML5 javascript修改canvas的大小
  17. 创办公司流程及注意事项
  18. 自己实现atoi函数
  19. 斗鱼直播Android开发二面被刷,不吃透都对不起自己
  20. smarty新闻管理系统

热门文章

  1. 【用故事解读 MobX源码(一)】 autorun
  2. 什么是OOA/OOD
  3. 生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解
  4. offsetLeft和style.left的区别
  5. css margin居中的问题
  6. c语言结构体使用方法
  7. Cassandra学习手册之一:Cassandra介绍
  8. NETMF Versions 4.1 Release 发布
  9. 第19节 项目整体绩效评估.
  10. Nginx服务器编译添加SSL模块