必须有数据表明该行既是 A 行的子行又是 B 行的子行。这可以做到,但似乎不是典型的。想想一个员工。大多数员工只有一名直接经理。在一个简单的设计中,一个员工可以有两个经理,但它需要多个员工记录。例如:
--drop table e;
create table e (id number, name varchar2(100), manager number);
insert into e values (1,'Amos',null);
insert into e values (2,'Bob',1);
insert into e values (3,'Cindy',1);
insert into e values (4,'Dave',2);
insert into e values (4,'Dave',3);
select substr(name,1,7) name, substr(prior name,1,7) Manager
from e start with id=1 connect by prior id=manager order by name;
必须有数据表明该行既是 A 行的子行又是 B 行的子行。这可以做到,但似乎不是典型的。想想一个员工。大多数员工只有一名直接经理。在一个简单的设计中,一个员工可以有两个经理,但它需要多个员工记录。例如:
我不清楚这是关于建模还是分层查询本身的问题 - 但假设是后者。
是的,只要数据中没有循环,您定义什么是“父”行和什么是“子”行的方式就没有限制:
试验台:
例子:
请注意,在结果中, id
3
有两个不同的“父母”