0

ロードマップ(接続都市のリスト)があります:

drop table aaa; 
create table aaa(a varchar2(10),  b varchar2(10));
insert into aaa values ('Rome','Berlin');
insert into aaa values ('London','Rome');
insert into aaa values ('London','New-York');
insert into aaa values ('New-York','Dallas');

パスを取得する必要があります: ベルリン=>ローマ=>ニューヨーク=>ダラス

バリエーション 1:

select sys_connect_by_path(DECODE(a, PRIOR a, b, a),'=>') PATH1
from aaa
start with a = 'Berlin' or b = 'Berlin'
connect by nocycle  Prior a = b or prior b = a

帰り: =>ローマ=>ロンドン

バリエーション 2:

select sys_connect_by_path(DECODE(a, PRIOR a, b, a),'=>') PATH1
from aaa
start with a = 'Berlin' or b = 'Berlin'
connect by Prior a = b or prior b = a

Return: ERROR ORA-01436 ユーザー データの CONNECT BY ループ

階層クエリで期待される結果を得る方法はありますか?

4

1 に答える 1