zoukankan      html  css  js  c++  java
  • MSSQL 查找子結節與父節點

    -->Title:Generating test data
    
    -->Author:wufeng4552
    
    -->Date :2009-09-30 08:52:38
    
    set nocount on
    
    if object_id('tb','U')is not null drop table tb
    
    go
    
    create table tb(ID int, ParentID int)
    
    insert into tb select 1,0 
    
    insert into tb select 2,1 
    
    insert into tb select 3,1 
    
    insert into tb select 4,2 
    
    insert into tb select 5,3 
    
    insert into tb select 6,5 
    
    insert into tb select 7,6
    
    -->Title:查找指定節點下的子結點
    
    if object_id('Uf_GetChildID')is not null drop function Uf_GetChildID
    
    go
    
    create function Uf_GetChildID(@ParentID int)
    
    returns @t table(ID int)
    
    as
    
    begin
    
       insert @t select ID from tb where ParentID=@ParentID
    
       while @@rowcount<>0
    
       begin
    
          insert @t select a.ID from tb a inner join @t b
    
          on a.ParentID=b.id and
    
          not exists(select 1 from @t where id=a.id)
    
       end
    
    return
    
    end
    
    go
    
    select * from dbo.Uf_GetChildID(5)
    
    /*
    
    ID
    
    -----------
    
    6
    
    7
    
    */
    
    -->Title:查找指定節點的所有父結點
    
    if object_id('Uf_GetParentID')is not null drop function Uf_GetParentID
    
    go
    
    create function Uf_GetParentID(@ID int)
    
    returns @t table(ParentID int)
    
    as
    
    begin
    
       insert @t select ParentID from tb where ID=@ID
    
       while @@rowcount!=0
    
       begin
    
         insert @t select a.ParentID from tb a inner join @t b
    
           on a.id=b.ParentID and
    
           not exists(select 1 from @t where ParentID=a.ParentID)
    
       end
    
      return
    
    end
    
    go
    
    select * from dbo.Uf_GetParentID(2)
    
    /*
    
    ParentID
    
    -----------
    
    1
    
    0
    
    */
    
  • 相关阅读:
    2019-9-2-win10-uwp-Markdown
    2018-8-10-控件
    2018-8-10-win10-uwp-dataGrid
    2018-2-13-win10-uwp-hashcash
    2018-2-13-git-cannot-lock-ref
    UCOSIII系统内部任务
    UCOSIII时间片轮转调度
    Keil MDK fromelf生成bin文件
    UCOS内存管理
    uavcan扩展帧格式 zubax
  • 原文地址:https://www.cnblogs.com/liushunli/p/4242994.html
Copyright © 2011-2022 走看看