私は他のサブクエリのセット内に存在しないすべてのユーザーを選択する必要があります。PLSQLの回避コードの重複
SELECT user_id
FROM (<userSubQuery1>)
WHERE
user_id NOT IN (<badUserSubQueryA>) AND
user_id NOT IN (<badUserSubQueryB>) AND
user_id NOT IN (<badUserSubQueryC>)
は私だけではuserSubQuery、多くの異なるクエリでフィルタしていない操作を行う必要があり、 badUserSubQueriesは異なる場合があります。例:
SELECT user_id
FROM (<userSubQuery2>)
WHERE
user_id NOT IN (<badUserSubQueryB>) AND
user_id NOT IN (<badUserSubQueryC>) AND
user_id NOT IN (<badUserSubQueryD>)
すべてのサブクエリ、Iから選択し、一度NOT INで使用してるものの両方が複雑なので、私は、サブクエリにないためのコードを複製する必要はありません多くの場合同じです(私の例ではbadUserSubQueryBとbadUserSubQueryC)。
私は動的SQLでこれを達成できましたが、私がそれを避けることができたら、私はむしろそうしませんでした。出来ますか?
Oracleでは、サブクエリごとにマテリアライズド・ビューを使用することもできます。 – Joe
実際に開発プロセスの問題を解決するために、パフォーマンスへの影響やリソースの排水の実装を使用しないでください。 – APC
すべてのbadUserSubQueriesの結果の和集合を持つplsqlコレクションを返す関数があると考えました。どのようにパフォーマンスの賢さを一時テーブルに入れるのと比べると? –