zoukankan      html  css  js  c++  java
  • SQL函数递归取树状结构

    表结构:
    USE [Test]
    GO
    /****** 对象:  Table [dbo].[PersonTree]    脚本日期: 09/25/2009 00:17:44 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[PersonTree](
     [ID] [int] IDENTITY(1,1) NOT NULL,
     [PName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
     [ParentID] [int] NULL
    ) ON [PRIMARY]

    GO
    SET ANSI_PADDING OFF



    SQL函数:

    CREATE FUNCTION dbo.getPerson(@personID INT)
    RETURNS @table TABLE(id INT, pname VARCHAR(50))
    AS
    BEGIN 
     --INSERT INTO @table SELECT id, pname FROM PersonTree WHERE parentid = @personID 
     DECLARE @id INT
     DECLARE @pname VARCHAR(50)
     DECLARE myCursor CURSOR FOR
      SELECT id, pname FROM PersonTree WHERE parentid = @personID 
     OPEN myCursor
     FETCH NEXT FROM myCursor INTO @id, @pname;
     WHILE @@FETCH_STATUS = 0
     BEGIN 
      INSERT INTO @table VALUES(@id,@pname);
      INSERT INTO @table SELECT * FROM dbo.getPerson(@id);
      FETCH NEXT FROM myCursor INTO @id, @pname;
     END
     
     CLOSE myCursor
     DEALLOCATE myCursor
     
     RETURN
    END

  • 相关阅读:
    Andriod调试桥
    抓包工具charles的使用
    测试常用工具
    Indentation error codes
    Cmder 中文乱码的解决方法
    修改Cmder命令提示符
    统计单词出现的字数
    将字串内容输出到文件
    python数据实例str
    python语法检查工具
  • 原文地址:https://www.cnblogs.com/jiajinyi/p/1573684.html
Copyright © 2011-2022 走看看