在 Oracle 10g 中,我有以下分层表:
corp_id, parent_corp_id, col1, col2, col3
我想展平结构,以便我们获得第一行的数据,其中 col1 OR col2 OR 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 where corp_id = 3
那么,结果集应该是:
corp_id, parent_corp_id, col1, col2, col3
3 , 1 , NULL, 6, NULL
换句话说,如果孩子在这三列之一中有数据,我们就抓取它。否则,我们尝试父母等等。深度不应该超过 3 个级别,但它可以有 3 个级别来查看。
分层查询很新,如果这是一个基本问题,请原谅我。