0

個別の値を持つ列があるとします(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)ます。

4

2 に答える 2

0

すべての値を一度に比較したい場合は、オラクルのマイナスステートメントを使用できます。

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 の詳細については、こちらを参照してください。

于 2013-06-24T06:00:38.453 に答える