-2
我有數據如下家長和孩子有關作爲循環滿耳
A B
1001 601
1002 1001
1003 1002
1004 1002
1005 1002
我需要輸出
1001
1002
1003
1001
1002
1004
1001
1002
1005
請幫我
我有數據如下家長和孩子有關作爲循環滿耳
A B
1001 601
1002 1001
1003 1002
1004 1002
1005 1002
我需要輸出
1001
1002
1003
1001
1002
1004
1001
1002
1005
請幫我
試試下面的代碼。
WITH sample_data AS(
SELECT '1001' A, '601' B FROM dual UNION ALL
SELECT '1002' A, '1001' B FROM dual UNION ALL
SELECT '1003' A, '1002' B FROM dual UNION ALL
SELECT '1004' A, '1002' B FROM dual UNION ALL
SELECT '1005' A, '1002' B FROM dual
)
SELECT TRIM(COLUMN_VALUE) tree_path
FROM
(
SELECT SUBSTR(SYS_CONNECT_BY_PATH(A, ','),2) tree_path
FROM sample_data
WHERE CONNECT_BY_ISLEAF = 1
start with A = '1001'
CONNECT BY PRIOR A = B
), XMLTABLE(('"' || REPLACE(tree_path, ',', '","') || '"'))
非常感謝你.... –
歡迎。你能接受答案:) –
你怎麼知道你需要這個輸出?將輸入轉換爲輸出的規則是什麼? – Psytho
使用以前的連接我們可以得到20%的輸出,SELECT A FROM T108 T8以C = 1開始,由前面的A = B連接。從這個查詢中我得到1001 1002 1003,但其餘的看起來不對 –
什麼是算法?你怎麼知道你的輸出順序是正確的?例如,601的輸出位置在哪裏? – Psytho