1

を使用する手順がありますConnect By

SELECT <lots of fields>
FROM Group g
  <joins>
WHERE <where>
CONNECT BY PRIOR g.ID = g.ParentID
START WITH g.ID = 1337
ORDER SIBLINGS BY g.Name
;

数値1337はこのプロシージャのパラメータです。この値の場合0、コードを無視して他のconnect byすべてを実行します。

どうすればこれを処理できますか?

4

1 に答える 1

2

最も明白な答えは、connect by句の例外値をテストすることです。

SELECT <lots of fields>
FROM Group g
  <joins>
WHERE <where>
CONNECT BY PRIOR g.ID = g.ParentID and :param <> 0
START WITH g.ID = :param or :param = 0
ORDER SIBLINGS BY g.Name;
于 2011-09-21T18:37:40.433 に答える