oralce 中层次遍历

该博客可能围绕 Oracle 数据库中的层次遍历展开,虽未提供具体内容,但推测会涉及相关技术实现、应用场景等信息技术领域知识。
WITH CTE AS ( SELECT UNNEST(ARRAY[1,2,3,4,5,6,7,8]) AS NODELEVEL, unnest(ARRAY[ NULL, lv1_dept_code, lv2_dept_code, lv3_dept_code, lv4_dept_code, lv5_dept_code, lv6_dept_code, lv7_dept_code ]) AS PNODECODE, unnest(ARRAY[ lv1_dept_code, lv2_dept_code, lv3_dept_code, lv4_dept_code, lv5_dept_code, lv6_dept_code, lv7_dept_code, lv8_dept_code ]) AS NODECODE, unnest(ARRAY[ lv1_dept_cn_name, lv2_dept_cn_name, lv3_dept_cn_name, lv4_dept_cn_name, lv5_dept_cn_name, lv6_dept_cn_name, lv7_dept_cn_name, lv8_dept_cn_name ]) AS NAME FROM DBDATAVOICE.DWR_DIM_DV_DEPT_D WHERE del_flag = 'N' AND dept_lv BETWEEN 0 AND 9 ) SELECT DISTINCT NODECODE, NAME, NODELEVEL, PNODECODE FROM CTE WHERE NODECODE IS NOT NULL AND (NODECODE <> PNODECODE OR PNODECODE IS NULL) ORDER BY NODELEVEL, PNODECODE, NODECODE, NAME; WITH deduplicated_data AS ( SELECT DISTINCT dept_code AS nodeCode, dept_lv AS nodeLevel, dept_cn_name AS nodeName, CASE WHEN dept_lv = 0 THEN NULL -- 0级节点没有父节点 WHEN dept_lv = 1 THEN NULL -- 1级节点也没有父节点(缺少lv0_dept_code) WHEN dept_lv = 2 THEN lv1_dept_code WHEN dept_lv = 3 THEN lv2_dept_code WHEN dept_lv = 4 THEN lv3_dept_code WHEN dept_lv = 5 THEN lv4_dept_code WHEN dept_lv = 6 THEN lv5_dept_code WHEN dept_lv = 7 THEN lv6_dept_code WHEN dept_lv = 8 THEN lv7_dept_code WHEN dept_lv = 9 THEN lv8_dept_code ELSE NULL END AS pNodeCode FROM DBDATAVOICE.DWR_DIM_DV_DEPT_D WHERE dept_lv BETWEEN 0 AND 9 AND del_flag = 'N' -- 确保只处理有效层级 ) SELECT nodeCode, nodeName, nodeLevel, pNodeCode FROM deduplicated_data WHERE nodeCode IS NOT NULL AND (nodeCode <> pNodeCode OR pNodeCode IS NULL) ORDER BY nodeLevel, nodeCode;为什么这两段SQL查询的条数不一致
07-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迅捷的软件产品制作专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值