2009年3月21日土曜日

【oracle】in句のnullの扱い

in句で使用する項目にnull値があると検索に引っかからないが、null値も含めて検索したい場合が今回あったので忘れないためにメモ。

select *
from emp a
where (a.empno,'x' || a.ename || 'x')
in (select b.empno
,'x' || b.ename || 'x'
from emp b
where b.job = 'SALESMAN'
)

要は、null値が入るとわかっている項目に対し、適当な文字で挟んで文字列結合すれば、null値があっても上記のように'xx'に置き換えられて検索対象としてヒットする。もちろん、項目はvarcharなどの文字列である必要があります。

0 件のコメント: