私はこのサイトを見つけました:ここ
なぜそれが機能するのか、なぜ機能しないのかが非常によく説明されています。
しかし、私の質問は少し異なります。
select 'true' from dual where 'test' not in ('test2','');
このクエリが行を取得しないのはなぜですか?
のように''
扱われnull
ますか?
あなたの助けのためのthx
あなたの疑いは正しかった。
したがって、クエリは基本的に
WHERE 'test' <> 'test2' and 'test' <> Null
次のように評価されます
WHERE true and unknown
どれがunknown
select * from dual where '' = '';
同じ(ない)結果が得られます
はい、Oracle では空の文字列は NULL です。