有表如下:
id1 id2
1 2
2 3
4 3
4 5
6 5
7 6
已知:拓扑是树结构,id1和id2表示拓扑中两个设备id,表中每行表示两个设备有连接关系。且知道id为1的设备是根节点。
求:通过上表得到如下表(pid为id的父节点)
pid id
1 2
2 3
3 4
4 5
5 6
6 7
请高手赐教,不胜感激!
楼上没有理解我的意思。
你给的语句是以我给的第二个表为基础的。
我现在的问题如何通过第一个表得到第二个表。原始数据没有问题。
SQL code:
select a.pid,a.id
from (--想通了,,,对原来的字段顺序做下调整.
select case when a.pid-a.id>0 then a.id else a.pid end as id,
case when a.id-a.age>0 then a.pid else a.id end as pid from a
) a
start with a.pid=1
connect by a.pid=prior a.id
SQL code:
select a.pid,a.id
from (--想通了,,,对原来的字段顺序做下调整.把数据小的放到前面,这样就可以了
select case when a.pid-a.id>0 then a.id else a.pid end as id,
case when a.pid-a.id then a.pid else a.id end as pid from a
) a
start with a.pid=1
connect by a.pid=prior a.id
java3344520: