SQL子查询,查询树形列表,常用于组织、部门的查询

用SQL对组织表、部门表等树形结构的表进行查询,是一个伤脑筋的事情,

借助于SqlServer中的子查询进行此方面的操作将事半功倍,子查询代码如下:

WITH DepartTree
AS
(
SELECT
GROUP_Name,
GROUP_Parent,
GROUP_ID,
GROUP_PARENTID,
0 as Lev
FROM
SYS_BPS_GROUPS

WHERE
GROUP_ID = 1

UNION ALL

SELECT
T.GROUP_Name,
T.GROUP_Parent,
T.GROUP_ID,
T.GROUP_PARENTID,

DT.Lev + 1
FROM
SYS_BPS_GROUPS T INNER JOIN DepartTree DT

ON T.GROUP_PARENTID = DT.GROUP_ID
)

上述代码中的表名SYS_BPS_GROUPS以及select的字段可以换为自己的组织、部门等树形结构表的表名、字段名。

使用方法如下:

select a.*,b.USER_DspName,b.USER_Title,b.USER_Level,dt.Lev
from
@temp a join SYS_BPS_USERS b
on a.PRC_ProcUser=b.USER_Account
join DepartTree dt
on a.groupId=dt.GROUP_ID
where PRC_ProcTime is not null order by sort asc

童鞋们完全可以将此子查询当做一个表使用。

转载于:https://www.cnblogs.com/lishuaiying/archive/2012/03/20/2408274.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值