zoukankan      html  css  js  c++  java
  • 递归查树形结构

    --drop table tb
    --go
    --create table tb(code int,su_code int)
    --insert into tb(code,su_code) values(1,null)
    --insert into tb(code,su_code) values(11,1)
    --insert into tb(code,su_code) values(12,1)
    --insert into tb(code,su_code) values(111,11)
    --insert into tb(code,su_code) values(112,11)
    --insert into tb(code,su_code) values(121,12)
    --insert into tb(code,su_code) values(122,12)
    --insert into tb(code,su_code) values(1221,122)

    --SELECT * FROM tb
    --SELECT * FROM #stack
    --DROP TABLE #stack

    go

    --create table #stack(item int,levels int)
    --delete from #stack
    SET nocount ON
    go
    DECLARE @top INT
    DECLARE @level INT
    DECLARE @line VARCHAR(128)
    SELECT @top = code
    FROM tb
    WHERE su_code IS NULL
    INSERT INTO #stack
    VALUES ( @top, 1 )
    SELECT @level = 1
    WHILE @level > 0
    BEGIN
    IF EXISTS ( SELECT *
    FROM #stack
    WHERE levels = @level )
    BEGIN
    SELECT @top = item
    FROM #stack
    WHERE levels = @level
    SELECT @line = SPACE(@level - 1) + CONVERT(VARCHAR, @top)
    PRINT @line
    DELETE FROM #stack
    WHERE levels = @level
    AND item = @top
    INSERT INTO #stack
    SELECT code ,
    @level + 1
    FROM tb
    WHERE su_code = @top
    IF @@rowcount > 0
    SELECT @level = @level + 1
    END
    ELSE
    SELECT @level = @level - 1
    END

  • 相关阅读:
    pku,杨建武:文本挖掘技术
    IT国家重点实验室
    Python3实现简单的http server
    需要保存数据zabbix,不需要保存数据nagios
    Union
    wox 快速搜索程序
    QTTabBar http://qttabbar.wikidot.com/
    git出错调试
    虚拟机无法上网的问题的解决
    通过命令行升级git for windows
  • 原文地址:https://www.cnblogs.com/z1984/p/2948104.html
Copyright © 2011-2022 走看看