コンテンツにスキップ

テーブル: 階層クロージャ ステップは、各行を親のチェーンに沿ってたどり上がり、行とその各祖先ごとに1行の出力行を書き込みます。深さの制限はありません。距離列は、その行自身が0、親が1、というように増えていきます。

たどる処理は、ルート、ノードテーブルにない親、またはすでに通過したノードで停止します。そのため、親IDにループがあっても無限に実行されることはありません。ループがある場合は、繰り返されるノードまでのすべての祖先が保持されます。どのルートにも到達しないループは、最小のIDで終了します。

  • たどり始める行 — たどる処理を開始する行を持つテーブルです。
  • ID列 と 親列 — 各行のIDと、その親のIDです。NULL、または行自身のIDはルートを示します。
  • ノードテーブル (オプション) — たどり上がる対象となるノードのテーブルです。空白のままにすると、ソーステーブルを使用します。
  • ノードID列 と ノード親列 (オプション) — デフォルトはID列と親列です。複数の行を持つIDは、ルート行があればそれに従い、なければ最小の親に従います。
  • 祖先列 — 祖先のIDを保持する出力列です。デフォルトは Ancestor です。
  • 距離列 — 開始行からのステップ数です。デフォルトは Distance です。
  • パスに沿って作成される文字列 (オプション) — たどり上がる際に組み立てるテキスト列ごとに1行です。各行には次の項目があります。
    • 出力列 — 新しい列です。
    • ソース列 — テキストとして読み取る列です。ノードテーブルで異なる場合は、ノード列 でノードテーブルから読み取る列を指定します。
    • 区切り文字 — 値の間に入れるテキストです。
    • 重複排除 — テキストにすでに含まれている値をスキップします。
    • ルートを先頭に — それまでのテキストの前に各祖先を置きます。
  • 出力テーブル — 結果の書き込み先です。

出力には、ID列と親列、祖先列と距離列、および組み立てる文字列ごとに1つのテキスト列が含まれます。