0

以下の 2 つの列で人とマネージャーの関係を定義するテーブルがあります。すべての人が特定のマネージャーに属し、すべてが間接的な報告先である場合、最善のアプローチは何ですか?

また、特定のレベルに固有の方法、たとえば、レベル 2 または n までの特定の personid のすべてのユーザーを取得するなど

PERSONID REPORTTO_PERSONID
2              1
3              1
4              1
5              1
6              4
7              4
8              7
9              2
4

1 に答える 1

0

これにより、personid = 2 に報告するすべての人が再帰的に検索されます。

level列は、条件で指定された行までの相対距離を示しますstart with。階層の全体的なレベルではありません。

select *
from (
  select personid, 
         reportto_personid, 
         level as lvl
  from the_table
  start with personid = 2
  connect by prior personid = reportto_personid
) t 
where lvl <= 2;

詳細はマニュアルに記載されており、すべての質問はこのページの右側に記載されています。

于 2013-07-04T10:34:56.770 に答える