現在、コンマ区切りの文字列をフィールド名IDの数値テーブルに変換しています。次に、生成されたテーブルがnullの場合、nvlを実行してすべてを選択しようとしています。
table1.ID = NVL(table2.ID, table1.ID)
2つのテーブルがあり、table2の結果でtable1をフィルタリングする必要があります。table2が空の場合、table1のすべてを返す必要があります。
シナリオI
表1
ID
1
2
3
4
表2(空)
ID
Return rows 1, 2, 3, 4
シナリオII
表1
ID
1
2
3
4
表2
ID
2
3
行2、3を返す
次のwhere
句でフィルタリングを使用できます。
select t1.id
from table1 t1
where not exists (select 1 from table2) or
exists (select 1 from table2 t2 where t2.id = t1.id);
join
この論理を表現する正しい方法だとは思いません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加