我们正在使用Oracle 11。 一共有3列:ID,ParentID,级别,名称。
级别1是最高级别,然后是级别2,然后是级别3。
例如:
ID ParentID Level Name
10 12 3 Name10
11 (null) 1 Name11
12 11 2 Name12
如何创建一个查询,该查询将在1行中返回它们,如下所示:
ID ParentID NameParent Child1 NameChild1 Child2 NameChild2
11 (null) Name11 12 Name12 10 Name10
谢谢。
答案 0 :(得分:0)
您可以将表与自身连接起来,以将所有三行合并为一个:
select
t1.id, t1.parentid, t1.name as nameparent,
t2.id as child1, t2.name as namechild1,
t3.id as child2, t3.name as namechild2
from my_table t1
join my_table t2 on t2.parentid = t1.id
join my_table t3 on t3.parentid = t2.id
where t1.parentid is null