zoukankan      html  css  js  c++  java
  • mssql查询所有上下级

    if exists (select * from sys.all_objects where name='GetOrgTreeByID')
    begin
    drop proc GetOrgTreeByID
    end
    go

    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:
    -- Description: <获取组织架构所有上下级>
    -- =============================================
    CREATE PROCEDURE [dbo].[GetOrgTreeByID]

    @ID int,--查询的ID
    @QueryType nvarchar(50)	--查询方式,down:查询所有下级,up:查询所有上级
    

    AS
    BEGIN
    IF(@QueryType='down')
    begin
    with DownLevel as
    (
    select id,ParentID,OrgName, 0 as lvl from tabOrg
    where id = @ID
    union all
    select d.id,d.ParentID,d.Orgname,lvl + 1 from DownLevel c inner join tabOrg d
    on c.Id = d.ParentID
    )
    select * from DownLevel
    end
    else
    begin
    with UpLevel as
    (
    select id,ParentID,OrgName, 0 as lvl from tabOrg
    where id = @ID
    union all
    select d.id,d.ParentID,d.Orgname,lvl + 1 from UpLevel c inner join tabOrg d
    on c.ParentID = d.id
    )
    select * from UpLevel
    end
    END
    GO
    --exec GetOrgTreeByID 2,'up'

  • 相关阅读:
    Roads in the North
    Labyrinth
    英语写作(二)
    语法长难句笔记
    英语写作(一)
    MySQL笔记(二)
    MySQL笔记(一)
    Mybatis简单使用与配置
    Mybatis映射文件
    什么是serializable接口?
  • 原文地址:https://www.cnblogs.com/SilenceTom/p/5576050.html
Copyright © 2011-2022 走看看