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'
mssql查询所有上下级的更多相关文章
- MSSQL·查询T-SQL语句执行时间的三种方法
阅文时长 | 0.23分钟 字数统计 | 420.8字符 主要内容 | 1.引言&背景 2.自定义时间变量求差法 3.MSSQL内置方法 4.MSSQL选项开启时间统计 5.声明与参考资料 『 ...
- MSSQL·查询数据库中所有索引的相关信息
阅文时长 | 0.45分钟 字数统计 | 784字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·查询数据库中所有索引的相关信息』 编写人 | SCscHero 编写时间 ...
- MSSQL·查询存储过程中的关键字
阅文时长 | 0.22分钟 字数统计 | 408字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·查询存储过程中的关键字』 编写人 | SCscHero 编写时间 | 20 ...
- Oracle和MSSQL查询有多少张表
Oracle: SELECT count(*) FROM user_tables MSSQL: ) FROM sysobjects WHERE xtype='U' 这种方法可能会把dbo.dtprop ...
- mssql查询某个值存在某个表里的哪个字段的值里面
第一步:创建 查询某个值存在某个表里的哪个字段的值里面 的存储过程 create proc spFind_Column_In_DB ( @type int,--类型:1为文字类型.2为数值类型 )-- ...
- MSSQL 查询分组前N条记录
sql语句中,查询分组中前n条记录的sql语句如下 第一种方法 select * from consultingfeebill awhere n>(select count(*) from co ...
- mssql 查询效率
(1)临时表.表变量 据说:当数据量<100行数据时使用表变量,数据量较大时使用临时表(可创建索引提高查询效率). 表变量只能创建主键或唯一索引,准确讲是约束不是索引. (2)存储过程直接在查询 ...
- MSSQL查询所有数据库表,指定数据库的字段、索引
--查询所有数据库USE mastergoselect [name] from [sysdatabases] order by [name] --查询其中一个数据库test,就可以得到这个数据库中的所 ...
- MSSQL 查询统计某状态出现的次数及累计时间
1.问题来源 最近客户需要统计某个设备,某状态,在某一个时间段内出现的次数,并计算累计出现的时间. 数据源如下: 现在如果要统计UPSCTSTA状态为D出现的次数(同一状态,连续出现的认为是一次),并 ...
随机推荐
- shell、cmd、dos和脚本语言杂谈(转)
问题一:DOS与windows中cmd区别 在windows系统中,“开始-运行-cmd”可以打开“cmd.exe”,进行命令行操作. 操作系统可以分成核心(kernel)和Shell(外壳)两部 ...
- linux配置了dns后导致mysql远程连接慢问题
有时候dns配置错误或者其它原因会导致mysql远程连接缓慢,此时只需要关闭mysqlDNS反向解析即可解决此问题. 打开my.cnf配置,将[mysqld]下的#skip-name-resolve前 ...
- poj_2774 后缀数组
题目大意 给定两个字符串A,B,求出A和B中最长公共子串的长度. 题目分析 字符串的子串可以认为是是字符串的某个后缀的前缀,而求最长公共子串相当于A和B的某两个后缀的最长相同前缀.可以考虑使用后缀数组 ...
- poj_1988 并查集
题目大意 开始有N堆砖块,编号为1,2....N,每堆都只有一个.之后可以进行两种操作: (1)M X Y 将编号为X的砖块所在的那堆砖拿起来放到编号为Y的砖块所在的堆上: (2)C X 查询编号为X ...
- 【LINUX】SVN 代码提交之后。同步到web目录下
1 当你使用svn在成功提交一个新版本的时候,svn仓库目录下的hook文件夹下的post-commit脚本会运行 用shell写一个脚本,在提交完版本后,自动在web目录运行一下svn updat ...
- 【Thinkphp5】结合layer弹窗 定制操作结果页面
1 打开应用公共文件页面 appliction/common.php,编写以下代码 注意: 成功消息的绿色背景部分是iframe 框架写法,如果是普通页面.就吧parent去除,改为: self ...
- MQTT的学习研究(十二) MQTT moquette 的 Future API 消息发布订阅的实现
MQTT moquette 的Server发布主题 package com.etrip.mqtt.future; import java.net.URISyntaxException; import ...
- 条件注释判断IE浏览器版本
lt,lte,gt,gte分别表示什么 lt:小于当前版本 lte:小于或等于当前版本,包括本身 gt:大于当前版本 gte:大于或等于当前版本,包括本身 使用格式 // 如IE9以下(不包括IE9加 ...
- Array.prototype.forEach数组遍历
forEach是Array新方法中最基本的一个,就是遍历,循环.先看以前是怎么遍历数组的 常用遍历 var arr = [1,2,3,4,5]; for(var i = 0; i < arr.l ...
- 【BZOJ2142】礼物 组合数+CRT
[BZOJ2142]礼物 Description 小E从商店中购买了n件礼物,打算送给m个人,其中送给第i个人礼物数量为wi.请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某个人在 ...