暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

一个面试题

原创 Anbob 2011-04-19
427
有如下信息:
起始地 目的地 距离(公里)
A B 1000
A C 1100
A D 900
A E 400
B D 300
D F 600
E A 400
F G 1000
C B 600
请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。
构表语句
create table test(fr_ad char(2),
to_ad char(2),
len int);
insert into test values('A','B',1000);
insert into test values('A','C',1100);
insert into test values('A','D',900 );
insert into test values('A','E',400 );
insert into test values('B','D',300 );
insert into test values('D','F',600 );
insert into test values('E','A',400 );
insert into test values('F','G',1000);
insert into test values('C','B',600 );
---
我个人的做法是
SQL> select fr_ad,lpad('>>',2*(level-1),'>')||to_ad step from test start with fr_ad='A' connect by nocycle prior to_ad=fr_ad;

FR STEP
-- ------------------------------
A B
B >>D
D >>>>F
F >>>>>>G
A C
C >>B
B >>>>D
D >>>>>>F
F >>>>>>>>G
A D
D >>F
F >>>>G
A E
E >>A
A >>>>B
B >>>>>>D
D >>>>>>>>F
F >>>>>>>>>>G
A >>>>C
C >>>>>>B
B >>>>>>>>D
D >>>>>>>>>>F
F >>>>>>>>>>>>G
A >>>>D
D >>>>>>F
F >>>>>>>>G

26 rows selected.
这是10g的特性,如果不用特性怎么做呢?呵呵
知道其它答案的给我恢复一下
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论