gpt4 book ai didi

sql - 如何通过SQL获取Oracle Connect中的最终父ID列

转载 作者:行者123 更新时间:2023-12-04 18:12:10 25 4
gpt4 key购买 nike

1像这样创建表

创建表oracle_connet_by_test(
item_id NUMBER主键,
parent_id NUMBER,
item_desc VARCHAR2(8));

插入oracle_connet_by_test VALUES(1,0,'AAA');
插入oracle_connet_by_test VALUES(2,0,'BBB');
插入oracle_connet_by_test VALUES(3,1,'CCC');
插入oracle_connet_by_test VALUES(4,2,'DDD');
插入oracle_connet_by_test VALUES(5,1,'EEE');
插入oracle_connet_by_test VALUES(6,3,'FFF');
插入oracle_connet_by_test VALUES(7,3,'GGG');
犯罪;

2当我运行此脚本时,输出将是

SQL> SELECT LEVEL,
2个ITEM_ID,
3 PARENT_ID,LPAD('',4 *(LEVEL-1))|| ITEM_DESC和ITEM_DESC
4次来自ORACLE_CONNET_BY_TEST
5从parent_Id = 0开始
6按优先项连接= parent ID
7;

等级ITEM_ID PARENT_ID ITEM_DESC
---------- ---------- ---------- -----------
1 1 0 AAA
2 3 1 CCC
3 6 3 FFF
3 7 3 GGG
2 5 1 EEE
1 2 0 BBB
2 4 2 DDD

3问题:如果我想要这个结果,应该如何编写代码?

等级ITEM_ID PARENT_ID ITEM_DESC SUPER_ID
---------- ---------- ---------- ---------------- ---- ------
1 1 0 AAA 1
2 3 1 CCC 1
3 6 3 FFF 1
3 7 3 GGG 1
2 5 1 EEE 1
1 2 0 BBB 2
2 4 2 DDD 2

最佳答案

使用connect_by_root:

SELECT LEVEL,
ITEM_ID,
PARENT_ID, LPAD(' ', 4 * (LEVEL - 1)) || ITEM_DESC AS ITEM_DESC
, connect_by_root item_id AS SUPER_ID
FROM ORACLE_CONNET_BY_TEST
START WITH parent_Id = 0
CONNECT BY PRIOR ITEM_ID = PARENT_ID
;

关于sql - 如何通过SQL获取Oracle Connect中的最终父ID列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11559612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com