在Oracle 10g中,我有以下分级表:获取父数据,如果子数据是Oracle阶层表空
corp_id, parent_corp_id, col1, col2, col3
我想变平的结构,使得我们得到的第一行的数据,其中COL1 OR col2或col3不为空。
因此,举例来说,假设我有:
corp_id = 1
parent_corp_id = null
col1 = 5
col2 = NULL
col3 = NULL
corp_id = 3
parent_corp_id = 1
col1 = NULL
col2 = NULL
col3 = NULL
此查询的结果会给我:
corp_id, parent_corp_id, col1, col2, col3
3 , 1 , 5 , NULL, NULL
另一种情形: 假设我把COL2 = 6,其中corp_id = 3
那么,结果集应该是:
corp_id, parent_corp_id, col1, col2, col3
3 , 1 , NULL, 6, NULL
换句话说,如果孩子在这三列中有一列有数据,我们就抓住它。否则,我们尝试父母等,等等。不应该超过3个级别,但可以有3个级别进行研究。
对分层查询来说很新,所以如果这是一个基本问题,请原谅我。
这对我不起作用我很害怕,我需要一个分层查询,因为我不知道有多少层次需要去找,直到找到一个值... – mlnyc 2014-09-20 14:39:49
@mlnyc is there an上限的水平? – Bohemian 2014-09-20 15:53:14