3

Oracle 11gr2 の次のツリー階層の例を考えてみます。

クエリ:

SELECT Lpad(ename,Length(ename) + LEVEL * 10 - 10,'-') 
FROM   emp 
START WITH mgr IS NULL 
CONNECT BY PRIOR empno = mgr


Result:


KING
----------JONES
--------------------SCOTT
------------------------------ADAMS
--------------------FORD
------------------------------SMITH
----------BLAKE
--------------------ALLEN
--------------------WARD
--------------------MARTIN
--------------------TURNER
--------------------JAMES
----------SAM
--------------------MILLER

ename が文字 'S' で始まる場合は常にi.e. substr(ename,1,1) = 'S'この値/ブランチを表示するが、それより下のすべてを無視するように、ツリー クエリを整理する必要があります。つまり、このレベル以降は何も表示しません。

したがって、上記の結果サンプルに基づいて、新しい結果サンプルは次のようになります。

New Result:

KING
----------JONES
--------------------SCOTT
--------------------FORD
------------------------------SMITH
----------BLAKE
--------------------ALLEN
--------------------WARD
--------------------MARTIN
--------------------TURNER
--------------------JAMES
----------SAM

そのため、子 "ADAMS" と "MILLER" は新しい結果から削除されました。

4

1 に答える 1