SQL--取得子部门的存储过程
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[UP_Department_GetAllChildDeptGUIDByLevels]
@DeptGUID uniqueidentifier,
@StartLevel int,
@EndLevel int
AS
BEGIN
SET NOCOUNT ON
declare @str varchar(8000)
Declare @sql varchar(8000)
declare @str1 varchar(8000)
declare @str2 varchar(8000)
declare @CountBy int
declare @i int
set @i = 0
set @CountBy = dbo.DeptLevel_CountBy(@StartLevel,@EndLevel)
set @str1 = 'select guid from Department(nolock) where parentguid = '''+cast(@DeptGUID as varchar(50))+''''
set @str2 = 'select guid from Department(nolock) where parentguid in ('
set @str = @str1
set @sql = @str1
while @i < @CountBy
begin
set @str = @str2 + @str + ')'
set @sql = @sql + ' union ' + @str
set @i = @i + 1
end
--print @sql
execute(@sql)
END
SET ANSI_NULLS OFF
CREATE FUNCTION [dbo].[DeptLevel_CountBy]
(
@StartLevel int,
@EndLevel int
)
RETURNS int
AS
BEGIN
DECLARE @CountBy int
SELECT @CountBy=count(LevelCode)
FROM DeptLevel
WHERE LevelCode BETWEEN @StartLevel AND @EndLevel
RETURN @CountBy
END
其中LevelCode为部门的层级,此算法取得子部门ID后,怎么操作就看你了。
速度很快,适合大型企业。
转载于:https://www.cnblogs.com/nine425/archive/2007/06/21/791515.html
SQL--取得子部门的存储过程相关推荐
- SQL 基础-- 子查询
--========================= --SQL 基础--> 子查询 --========================= /* 一.子查询 子查询就是位于SELECT.UP ...
- java代码递归查找部门和子部门id
1.根据传入部门的id,查找所有子部门id,返回包含传入id和子部门id集合 2.不推荐使用,我是因为数据量小,而且访问此方法的请求少才这样写 3.推荐数据库级别sql的递归查询(我没有成功实现才这样 ...
- java递归查询公司下所有部门及子部门
业务要求: 查询公司下所有子部门及子部门: 原型: 1.创建公司和部门实体: CompanyVos: package com.suwei.sysMng.vo; import java.io.Ser ...
- sqlplus查oracle存储过程,在SQL PLUS中调试Oracle存储过程
我们在通常情况下,开发和调试Oracle存储过程都是用可视化工具,如PL SQL DEVELOPER,TOAD等等.不会有人傻到要用 vim 去开发,再用 sql plus 去调试的存储过程的.但在有 ...
- SQL Server2000 未公开的存储过程
SQL Server2000 未公开的存储过程 sp_columns_rowset The sp_columns_rowset stored procedure returns the complet ...
- MySQL高级 - SQL优化 - 子查询优化
优化嵌套查询 Mysql4.1版本之后,开始支持SQL的子查询.这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中.使用子查询可以一次性的完成很多逻辑 ...
- [转] sql server 跨数据库调用存储过程
A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( @UserName nvarchar(20) =null ,@LoginPwd nvarchar(60) ...
- SQL Server常用的系统存储过程应用实例(转)
摘要:Sql Server自带的系统存储过程有许多,但大部分我们是不常用的.我在实践中根据自己的体会,总结整理了一些比较常用的,加上一些实例介绍给大家.本期介绍: l sp_attac ...
- json 插入数据_Power BI数据回写SQL Server(2)——存储过程一步到位
在上一讲: Power BI数据回写SQL Server(1)没有中间商赚差价 中, 我们讲过,利用循环的方式将PQ中得到的table表逐行导入SQL Server中,有的朋友怀疑这种方式会不会造成数 ...
- SQL必知必会-存储过程
存储过程 迄今为止,我们使用的大多数SQL语句都是针对一个或多个表的单条语句.并非所有操作都这么简单,经常会有一些非常复杂的操作需要多条语句才能完成. 例子: 为了处理订单,必须核对以保证库存中有相应 ...
最新文章
- Bioinformatics|癌症细胞系的用药反应预测
- MQTT client id重复导致连接失败
- 【架构】学习余额宝背后的服务治理架构
- matplotlib 画多条折线图且x轴下标非数值
- 前端js获取图片大小 扩展名_前端 JS 获取 Image 图像 宽高 尺寸
- MVC教程第一篇:准备工作
- datagridview 纵向 横向 合并单元格_每日一Excel技巧(熟能生巧):带公式的单元格,快速批量复制、填充...
- pycharm 中文_环境搭建:3.pycharm社区版安装配置
- 人脸对齐(二十)--PRN
- Linux下安装、配置、启动Apache
- vue中显示实时时间
- raft算法 java_raft-java首页、文档和下载 - 分布式一致性算法 Raft 的 Java 实现 - OSCHINA - 中文开源技术交流社区...
- UnityShader入门精要——运动模糊
- 条件运算符(三目运算符)
- 网易云linux字体太小,网易云音乐客户端和百度网盘在Deepin下字体显示太小的解决...
- RabbitMQ学习笔记
- 2015 百度 移动软件开发 一二面
- 获取微信用户信息方案(测试)
- 计算机研究生去中学当老师,清华、北大博士硕士争当中小学老师,就业难吗?看待遇就令人眼红...
- 移除字符串中多余的空格(包括中间多余空格及两头多余空格)
热门文章
- python 直方图的绘制方法全解_5种方法教你用Python玩转histogram直方图
- servicemix7 linux,学习ServiceMix笔记(三) 学习ServiceMix的基本命令之安装组件
- java实现pdf打印工具类,Java PDF工具类(二)| 使用 wkhtmltox 实现 HTML转PDF(文字/图片/页眉页脚)...
- rethat安装MySQL多例_SSM 使用 mybatis 分页插件 pagehepler 实现分页
- 从副高到评正高的条件_大学老师从副高到正高职称有多难?
- package.json 封装 vue模块_Vue管理系统前端~相关工具引入及封装
- 3、http网络编程——struct linger
- 《中国人工智能学会通讯》——1.20 聊天机器人研究存在的挑战
- 物联网技术如何驱动大数据
- IntelliJ IDEA 将 Maven 构建的 Java 项目打包