個別の値を持つ列があるとします(a,b,c,d,e,f) as values
。(a,b,d,f)
PL/SQL では、この列をセットと比較して、インジケーターを出力するにはどうすればよいですか?
私のアプローチは次のとおりです。
select case
when values in (a,b,d,f) then 'yes'
else 'no'
end
ただし、このアプローチは一度に 1 つの値を取り、それが にあるかどうかを確認し(a,b,d,f)
ます。
すべての値を一度に比較したい場合は、オラクルのマイナスステートメントを使用できます。
your_table
マイナス (select 'a' from dual union all select 'b' from dual union all select 'd' from dual union all select 'f' from dual
)
これにより、(a、b、d、f) にない your_table からすべての値が取得されます。
SYS.DBMS_DEBUG_VC2COLL 関数を使用して、値のコンマ区切りリストをテーブルに転送することもできます (
選択 ... デュアル ユニオンから すべて ...
)
SYS.DBMS_DEBUG_VC2COLL の詳細については、こちらを参照してください。