SQL tree data struct(2): materialized path (1.2.3...)

本文介绍了一种使用SQL查询来展示组织架构的方法,通过构建员工与上级之间的层级关系,实现了员工及其直接上级的快速检索。该方法利用了路径表示法,便于进行层次遍历和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



/*
then materialized path representation of tree is easy to output: order by path, level
*/

declare @orgchart table (emp varchar(30), path varchar(100))

insert @orgchart
select 'Albert', '1'
union all select 'Bert', '1.2'
union all select 'Chuck', '1.3'
union all select 'Eddie', '1.3.4'
union all select 'Donna', '1.3.5'
union all select 'Fred' ,'1.3.6'

select *, lvl=len(path) - len(replace(path, '.', ''))
from @orgchart

-- show all the staffs and their boss
select staff=subordinate.emp, boss=supervisor.emp
from @orgchart subordinate, @orgchart supervisor
where subordinate.path like supervisor.path + '%'
    and subordinate.path > supervisor.path

-- show all the staffs and their aide
-- select staff=supervisor.emp, subordinate.emp
select supervisor.*, subordinate.*
from @orgchart subordinate, @orgchart supervisor
where subordinate.path like supervisor.path + '%'
    and subordinate.path > supervisor.path
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值