先于条件连接

时间:2016-10-31 15:37:00

标签: sql plsql oracle11g

我需要用条件I.e编写分层查询。如果条件为真,那么某些列应该在前一个子句的连接中使用,如果它是假的,那么其他一些列应该在该子句中。

伪代码 ...

If col1 is not null then
  Connect by prior col1=col1
Else
  Connect by prior col2=col2 
...

在plsql中是否可以这样?

2 个答案:

答案 0 :(得分:4)

尝试CASE EXPRESSION

CONNECT BY PRIOR CASE WHEN col1 IS NOT NULL THEN col1 ELSE col2 END
               = CASE WHEN col1 IS NOT NULL THEN col1 ELSE col2 END

答案 1 :(得分:1)

您只需要正确封装条件:

connect by (col1 is not null and prior col1=col1)
  or (col1 is null and prior col2=col2)