zoukankan      html  css  js  c++  java
  • SqlServer 递归查询

    表:

    CREATE TABLE Category(

      ID      INT,

      NAME     INT,

      ParentID   INT

    向上递归:

     

    代码
    CREATE    FUNCTION [dbo].[GetRootCategoryID]
    /*
        Author:yanghh
        Date:2009-08-10
        des:得到某一类根结点
    */
    (
        
    @CategoryID INT
    )
    RETURNS @SubCategory TABLE(CategoryID INT,Level INT)
    AS
    BEGIN
        
    DECLARE @level    INT
        
    SET @level = 0
        
    INSERT INTO @SubCategory
        
    SELECT ID,@level FROM Category WHERE ID=@CategoryID
        
    WHILE @@ROWCOUNT >0
        
    BEGIN
            
    SET @level = @level+1
            
    INSERT INTO @SubCategory
            
    SELECT ParentId,@level FROM Category A, @SubCategory B 
                
    WHERE B.CategoryID = A.ID AND B.Level=@level-1
        
    END
        
    RETURN
    END

    向下递归:

    代码
    CREATE    FUNCTION [dbo].[GetChildCategoryID]
    /*
        Author:yanghh
        Date:2009-08-10
        des:得到某一类别子结点

    */
    (
        
    @CategoryID INT
    )
    RETURNS @SubCategory TABLE(CategoryID INT,Level INT)
    AS
    BEGIN
        
    DECLARE @level    INT
        
    SET @level = 0
        
    INSERT INTO @SubCategory
        
    SELECT ID,@level FROM CC_VOD_FilmCategory WHERE ID=@CategoryID
        
    WHILE @@ROWCOUNT >0
        
    BEGIN
            
    SET @level = @level+1
            
    INSERT INTO @SubCategory
            
    SELECT ParentId,@level FROM Category A, @SubCategory B 
                
    WHERE B.CategoryID = A.ParentID AND B.Level=@level-1
        
    END
        
    RETURN
    END
  • 相关阅读:
    用java简单的实现单链表的基本操作
    Pointcut is not well-formed: expecting 'identifier' at character position 0
    Spark 学习(二)
    Spark 学习
    学习Mahout (四)
    github 入门
    Source Insight 入门设置
    shell chpasswd 命令 修改用户密码
    sed 匹配 换行符
    学习Mahout(三)
  • 原文地址:https://www.cnblogs.com/BlueWoods/p/1681801.html
Copyright © 2011-2022 走看看