sql server 递归查询数据的一段代码

发布时间:2019-10-02编辑:脚本学堂
sql server 递归查询数据的一段代码,供朋友们学习参考。

sql server 递归查询数据的一段代码,供朋友们学习参考。

复制代码 代码如下:

alter PROCEDURE search_title_by_infotype ---根据分类查主题
    @类别ID int
as
begin
    declare @id int
    set @id=@类别ID;
    with temp(idCategory,categoryRoot) --递归法
    as(
        select 类别ID,根类别
        from dbo.主题类别表
        where 根类别=@id
       
        union all --Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序Union All,对两个结果集进行并集操作,包括重复行,不进行排序;

        select 类别ID,根类别
        from dbo.主题类别表
        inner join temp on temp.idCategory=根类别       
    )
    select * from temp
    end

    select * from dbo.论坛_主题表
    inner join dbo.主题类别表 on 类别ID=类别
    where 类别ID in
    (select idCategory from temp
     union all
     select @类别ID
    )
end