1

ドキュメントは次のとおりです:http://download-east.oracle.com/docs/cd/B12037_01/server.101/b10759/queries003.htm

説明する実行順序は次のとおりです。

  1. 結合が存在する場合は、結合がFROM句で指定されているか、WHERE句の述語で指定されているかに関係なく、最初に評価されます。
  2. CONNECTBY条件が評価されます。
  3. 残りのWHERE句の述語が評価されます。

私の質問は、パート1は、ネストされたクエリに適用されますか。たとえば、私が持っている場合:

select * from foo
where exists (select 'x' from bar
              where bar.foo_id = foo.foo_id 
              start with bar.id is null
              connect by prior bar.id = bar.parent_id)

where句の結合はすぐに実行されますか、それともこのコンテキストのfoo.foo_idは事実上単一の値であるため、残りの単一値の条件付き制限が実行されるパート3で実行されますか?

4

1 に答える 1

2

あなたが投稿したのは相関サブクエリです。

JOIN がないため、手順 2 と 3 が実行されます。

2) CONNECT BY 条件が評価されます。
3) 残りのWHERE句の述語が評価される

于 2010-08-02T17:05:53.840 に答える