我有一个树数据,我试图只选择根父母。数据可能是更大集合的子集,因此父级可能不为空。我想为数据集中的每棵树设置最高级别。
with test_data as (
select '1' ID,'100' name, null parent from dual
union
select '2' ID,'200' name, null parent from dual
union
select '3' ID,'300' name, null parent from dual
union
select '1.1' ID,'1.100' name, '1' parent from dual
union
select '2.1' ID,'2.100' name, '2' parent from dual
union
select '3.1' ID,'3.100' name, '3' parent from dual
union
select '3.1.1' ID,'3.1.100' name, '3.1' parent from dual
union
select '3.1.2' ID,'3.1.2.100' name, '3.1' parent from dual
union
select '4.1' ID,'4.100' name, '4' parent from dual
union
select '4.1.1' ID,'4.1.100' name, '4.1' parent from dual
union
select '4.1.2' ID,'4.1.2.100' name, '4.1' parent from dual )
select * from test_data
start with parent is null
connect by parent=prior id
我希望看到结果
ID NAME PAR
----- --------- ---
1 100
2 200
3 300
4.1 4.100 4
Rowid 4 未被选为子集的一部分是父级,但由于 4.1 是该数据集中的最高值,我想返回该行。所以基本上,我想查看每个层次结构的所有最顶层记录。
谢谢你。