sql如何进行父子关系遍历

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

操作方法

  • 01

    先建立需要测试的表格,及插入测试数据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

  • 02

    执行该语句,得到相应的数据库表格和数据

  • 03

    创建相应的遍历函数 Create Function GetChildren(@ID Int)Returns @Tree Table (ID Int, fatherID Int, Name Varchar(10))AsBeginInsert @Tree Select ID, fatherID, Name From A Where fatherID = @IDWhile @@Rowcount > 0Insert @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)ReturnEndGO

  • 04

    现在进行测试下函数的执行效果 Select * From dbo.GetChildren(1)GO

  • 05

    删除测试 Drop Table ADrop Function GetChildren--結果/*IDfatherIDName21aa31bb42cc52gg64yy74jj87ll

(0)

相关推荐

  • ae怎么设置父子关系? ae两个视频素材设置父级子级的教程

    ae中导入两个视频素材需要设置父级子级,该怎么设置呢?下面我们就来看看详细的教程. 1.首先打开ae软件.新建一个合成,并导入素材. 2.确定素材的上下顺序,然后选择素材进行移动. 3.移动素材时先选 ...

  • ae怎么建立父子关系

    ae的父子关系,我们可以理解为,从属关系,父级做什么,子级无条件跟着做什么:父级所做的变动,子级都会跟随.比如,两图层建立父子关系后,父级图形移动,作为子级的图形也跟着父级的图形移动而移动. 那么,在 ...

  • 历史上最详细的Linux DNS配置教程 推荐

    朋友们好,我也是一个刚刚接触Linux的 ,对于Linux下的DNS配置有点复杂,我也在网上搜索了好久,经过我的整理做了这个教程。希望给广大Linux新手朋友们一点帮助。 任务1:构建主域名服务器 任 ...

  • Linux中环境变量配置文件详解

    环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。对于UNIX,可能是CShelll。环境变量是通过 ...

  • MAYA2013快捷键大全

    Autodesk Maya 2013 快捷键,包括工具操作、动画关键帧、文件管理、播放控制、移动对象、雕刻控制、吸附操作、编辑操作。 以下列出的是 Maya2013 版本中所有系统默认的快捷键及它们的 ...

  • crontab 环境变量的使用方法

    环境:(产品,平台,机型,软件版本,等)AIX5L 问题描述:crontab中启动的shell脚本不能正常运行,但是使用手动执行没有问题,在$home/.profile中设定了脚本所需要的环境变量。 ...

  • Linux系统进程深入理解

    Linux系统进程深入理解

  • After Effects制作蝴蝶飞舞动画

    本例教大家用After Effects制作蝴蝶飞舞动画,我刚刚学着制作了一遍,教程难度中等。  具体的制作步骤如下: 一、打开Adobe After Effects CS4软件,鼠标左键双击项目窗口空 ...

  • solidworks和proe哪个更好用?

    相信学过机械设计的同学都知道solidworks与PROE这两款软件,SOLIDWORKS与PROE是被现在被广泛应用的三维设计软件,在功能上有很多相似的地方,不过又各具特点,那么这两款软件那个更好用 ...