to ern 呵呵,谢谢你的UP其实我这里说的路由算法并非是网络通信中的路由算法,只是算法类似而已,我现在的路径信息都存放在数据库里啊
glsensor(超能胶)∶ 写出来看看呀(不是不相信你,实在是想学学)
写了一个,效率可能比较低:),而且好像只有9i以上才支持:create table pathtbl( b_node varchar2(1), e_node varchar2(1) );... import data ...;select ltrim(path, ',') from ( select sys_connect_by_path(b_node||'->'||e_node,',') path from pathtbl start with b_node='A' connect by b_node=prior e_node ) where path like '%'||'F' ;结果好像还是不太像 :( LTRIM(PATH,',') ------------------------ A->I,I->J,J->F A->B,B->C,C->D,D->E,E->F A->G,G->H,H->F
这样写就行了,哈哈:)select 'A'||path from ( select sys_connect_by_path(e_node,'-->') path from pathtbl start with b_node='A' connect by b_node=prior e_node ) where path like '%'||'F' ;
呵呵,谢谢你的UP其实我这里说的路由算法并非是网络通信中的路由算法,只是算法类似而已,我现在的路径信息都存放在数据库里啊
b_node varchar2(1),
e_node varchar2(1)
);... import data ...;select ltrim(path, ',') from (
select
sys_connect_by_path(b_node||'->'||e_node,',') path
from pathtbl
start with b_node='A'
connect by b_node=prior e_node
)
where path like '%'||'F'
;结果好像还是不太像 :(
LTRIM(PATH,',')
------------------------
A->I,I->J,J->F
A->B,B->C,C->D,D->E,E->F
A->G,G->H,H->F
select
sys_connect_by_path(e_node,'-->') path
from pathtbl
start with b_node='A'
connect by b_node=prior e_node
)
where path like '%'||'F'
;
'A'||PATH
--------------------
A-->I-->J-->F
A-->B-->C-->D-->E-->F
A-->G-->H-->F
用最基本的SQL可以实现吗?