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'

  • 相关阅读:
    JVM类加载的过程
    接口文档设计
    代码规范及CodeReview要点
    Linux权限
    Linux文件
    UltraEdit编辑器基础技巧
    Android环境配置
    JDK 环境配置
    xml没有提示解决办法<eclipse>
    mysql事务实例
  • 原文地址:https://www.cnblogs.com/SilenceTom/p/5576050.html
Copyright © 2011-2022 走看看