2016-10-31 4 views
4

Ich muss eine hierarchische Abfrage mit Bedingung I.e schreiben. Wenn die Bedingung wahr ist, sollten bestimmte Spalten in der Klausel connect by prior verwendet werden, und wenn sie falsch ist, sollten einige andere Spalten in der Klausel enthalten sein.Verbinden mit Prior mit Bedingung

Pseudo-Code ...

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

Ist so etwas möglich in plsql?

Antwort

1

Sie gerade richtig die Bedingungen kapseln müssen:

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

Versuchen 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 
+0

Ich werde, dass nur hinzufügen, ohne die 'prior' Sie landen in einer unendlichen wählen hier aswell könnte? (nicht wirklich sicher aber) – SomeJavaGuy