zoukankan      html  css  js  c++  java
  • 常用递归结构数据表,返会指点节点,跟其子节点的操作 

    内容来自机械工业出版的仓库管理系统设计一书
    表结构{WareHouserID , ParentWarehouseID }
    查询指定节点跟其子节点的信息
    ALTER  FUNCTION dbo.GetWareSubtreeInfo(@WareHouseID int)
    RETURNS @treeinfo table
    (
    [WareHouseID] [int] NOT NULL,
    [ParentWarehouseID] [int] NOT NULL,
    [Level] [int] NOT NULL
    ) AS
    BEGIN
     --返回所有仓库,不按层次
     IF @WareHouseID=0
     BEGIN
      INSERT INTO @treeinfo
      SELECT WareHouseID,0,0  From  [WareHouses]
      RETURN
     END
     
     DECLARE @level AS int
     SELECT @level = 0
     
     INSERT INTO @treeinfo
     SELECT WareHouseID, ParentWarehouseID, @level
     From [WareHouses]
     WHERE [WareHouseID] = @WareHouseID

    ----每次循环是@level会加1,这样做Join 连接时会不断的将子类,以及子来的子类逐步添加到临时表 里
     WHILE @@ROWCOUNT > 0
     BEGIN
     
      SET @level = @level + 1
      
      INSERT INTO @treeinfo
      
      SELECT D.WareHouseID, D.ParentWarehouseID, @level
      From [WareHouses] As D
      JOIN @treeinfo AS T
      ON D.[ParentWarehouseID] = T.[WareHouseID] AND T.[Level] = @level - 1
     
     END
     RETURN
    END

  • 相关阅读:
    ElasticSearch安装中遇到的一些问题
    微信扫描二维码下载问题
    nginx截获客户端请求
    Nginx中的一些匹配顺序
    Redis-cli命令最新总结
    RabbitMQ服务安装配置
    Nginx服务状态监控
    使用Sqlserver更新锁防止数据脏读
    PHPStorm IDE 快捷键(MAC)
    MongoDB 安装
  • 原文地址:https://www.cnblogs.com/wdfrog/p/1124449.html
Copyright © 2011-2022 走看看