sql 2005 递归 查询部门所有子部门 with关键字

原创 2007年10月12日 10:43:00

前些日子要查询查询部门所有子部门


上网搜索了一下,方法有

(1)、sql 2005的数据库欧!!2000不支持的

with SUBdeptName(DEPT_ID,DEPT_NAME)
as
(
 SELECT
 DEPT_ID,
 DEPT_NAME
 FROM dbo.DEPARTMENTInfo
 WHERE DEPT_ID=1
)
 UNION ALL

 SELECT
 DEPT_ID
 ,DEPT_NAME
 FROM dbo.DEPARTMENTInfo
INNER JOIN SUBdeptName
 ON DEPARTMENTInfo.SUPERIOR_DEPT=SUBdeptName.DEPT_ID
)


(2)、测试数据--可直接运行

SELECT * INTO t --载入测试数据
FROM
(
    SELECT 1 AS ID,'food' AS Product,0 AS ParentID UNION ALL
    SELECT 2,'sport',0 UNION ALL
    SELECT 3,'drink',1 UNION ALL
    SELECT 4,'ball',2 UNION ALL
    SELECT 5,'fruit',1 UNION ALL
    SELECT 6,'apple',5 UNION ALL
    SELECT 7,'banana',5 UNION ALL
    SELECT 8,'football',4 UNION ALL
    SELECT 9,'basketball',4 UNION ALL
    SELECT 10,'peisi',3 UNION ALL
    SELECT 11,'wohaha',3
) AS a

SELECT * FROM T
GO
WITH ShowTree(ID,Product,ORDERBY) AS
(
    SELECT ID,Product,ID FROM t WHERE ParentID=0 --固定成员
   
    UNION ALL
    SELECT t.ID,t.Product,ORDERBY*100+t.ID FROM ShowTree AS s
    INNER JOIN t ON s.ID = t.ParentID
)
SELECT * FROM ShowTree ORDER BY CAST(ORDERBY AS VARCHAR(50))--OPTION(MAXRECURSION 1)

DROP TABLE t 

T-SQL查询:WITH AS 递归计算某部门的所有上级机构或下级机构

IF (OBJECT_ID('DEPT') IS NOT NULL) DROP TABLE DEPT CREATE TABLE DEPT(ID INT,PID INT, NAME VARCHAR(2...
  • kk185800961
  • kk185800961
  • 2013-10-16 18:01:47
  • 4407

获得某一部门下的所有子部门

表的结构如图: --根据传入的部门ID,返回它的所有子部门 @cid企业编号alter function fn_GetDeptID(@DeptId int,@cid int) returns ...
  • selfxd
  • selfxd
  • 2008-06-26 15:51:00
  • 1128

sql 递归 下级部门

create table #EnterPrise (   Department nvarchar(50),--部门名称   ParentDept nvarchar(50),--上级部门   D...
  • liuluyan
  • liuluyan
  • 2011-09-22 22:01:10
  • 1196

SQL CTE查询所有下级部门/上级部门

创建表: CREATE TABLE [dbo].[department]( [ID] [decimal](18, 0) IDENTITY(1,1) NOT NULL, [department...
  • apollokk
  • apollokk
  • 2012-12-19 09:32:31
  • 4977

oracle 递归查询属于本部门以及下属部门

oracle使用递归查询要使用 connect by语句 下面给出一个实例: select PUBCB_id,PUBCB001,PUBCB002 from TB_PUBCB start with...
  • u012251421
  • u012251421
  • 2015-01-05 15:21:26
  • 659

Mybatis之高级映射collection (递归查出树形数据之查询部门及部门下所有人员 二叉树)

第一步:创建树形数据Beanpublic class DeptTree { private String id; private String name; private List childrenL...
  • FANTASY522272820
  • FANTASY522272820
  • 2017-04-11 14:30:04
  • 1088

C#递归所以部门展示到TreeView

C#递归所以部门展示到TreeView
  • whl632359961
  • whl632359961
  • 2016-08-15 17:38:03
  • 479

mysql递归查询组织机构

目录结构:创建表并添加测试数据 创建表 添加数据 根据父id递归查询所有子节点 创建函数 根据函数查询 根据子id递归查询所有父节点 写sql语句 根据组织机构名称模糊查询所有父节点 创建函数 根据函...
  • moyanxuan_1993_2_24
  • moyanxuan_1993_2_24
  • 2016-10-11 17:55:45
  • 26976

查询部门下所有子部门(sqlserver2005)

条件:部门ID 结果:返回所有该部门下的子部门集合   with hgo as( select *,0 as rank from TDEPT t where t.cid='"+id+"'   u...
  • flyemu
  • flyemu
  • 2013-04-03 10:38:30
  • 747

取某个部门下的所有子部门SQL语句

数据库部门表如下:  departmentid     varchar(20)  部门ID parentid         varchar(20)  上级部门IDdepartmentname   v...
  • smyl9989
  • smyl9989
  • 2006-10-25 17:29:00
  • 994
收藏助手
不良信息举报
您举报文章:sql 2005 递归 查询部门所有子部门 with关键字
举报原因:
原因补充:

(最多只允许输入30个字)