根据001002得到所有的路径

本文展示了一个使用SQL进行复杂查询的例子,通过递归查询和分组操作来整理具有层级关系的数据。具体包括如何利用WITH子句定义临时表,使用SYS_CONNECT_BY_PATH连接路径,并按ID分组获取最小名称。
WITH a AS (SELECT '001' ID , 'a' NAME FROM dual
UNION ALL
SELECT '001002' ID , 'b' NAME FROM dual
UNION ALL
SELECT '001003' ID , 'c' NAME FROM dual
UNION ALL
SELECT '001002001' ID , 'd' NAME FROM dual
UNION ALL
SELECT '002' ID , 'f' NAME FROM dual
UNION ALL
SELECT '002001' ID , 'e' NAME FROM dual
)
SELECT ID,MIN(NAME ) FROM
(
SELECT ID, SYS_CONNECT_BY_PATH(D.name, '/') NAME FROM a d
CONNECT BY  prior d.id = substr(d.id, 0, length(d.id) - 3) )
c GROUP BY ID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值