巧用SQL中的WITH(树型结构数据的查询)

本文介绍了一种使用SQL递归查询来获取特定节点及其所有子节点的方法。通过WITH语句构建递归查询,从指定的部门节点开始,递归地找出其所有下级部门的信息。

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

如果表中存放的数据是树形结构,当知道某一个节点的值时,同时想取得它所有子节点的数据。

 

表结构:

         表结构

         

 

 表中存放的是部门组织结构, BMN_CD部门,SSK_KAISO_LV是阶层,BMN_MKJ部门名称,JOI_KAISO_LV上位阶层,JOI_BMN_CD上位部门。

 

检索SQL :

 

    WITH Moduals (BMN_CD, SSK_KAISO_LV, BMN_MKJ, BMN_NM_RYKS, SKI_FLG, JOI_KAISO_LV, JOI_BMN_CD) AS (SELECT
    T130A.BMN_CD,
    T130A.SSK_KAISO_LV,
    T130A.BMN_MKJ,
    TRIM(T130A.BMN_NM_RYKS) BMN_NM_RYKS,
    T130A.SKI_FLG,
    T130A.JOI_KAISO_LV,
    T130A.JOI_BMN_CD
FROM
    T130 T130A
WHERE
    T130A.BMN_CD = 'B00011' AND
UNION ALL
SELECT
    T130B.BMN_CD,
    T130B.SSK_KAISO_LV,
    T130B.BMN_MKJ,
    TRIM(T130B.BMN_NM_RYKS) BMN_NM_RYKS,
    T130B.SKI_FLG,
    T130B.JOI_KAISO_LV,
    T130B.JOI_BMN_CD
FROM
    T130 T130B
INNER JOIN Moduals T130C
   ON T130B.JOI_KAISO_LV = T130C.SSK_KAISO_LV
  AND T130B.JOI_BMN_CD = T130C.BMN_CD
)
SELECT Moduals.BMN_CD,SSK_KAISO_LV, BMN_MKJ, BMN_NM_RYKS, SKI_FLG, JOI_KAISO_LV, JOI_BMN_CD from Moduals

 

【 WHERE ………… 】

 

如果对检索结果还有限制的话,可以加WHERE语句进行限制。。。。。。。。

 

检索结果:

 

          检索结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值