'IN'子句的奇怪行为有效

时间:2010-08-23 15:11:35

标签: sql oracle null behavior string

我找到了这个网站:here

它很好地描述了它的工作原理以及为什么不工作。

但我的问题有点不同。

select 'true' from dual where 'test' not in ('test2','');

为什么这个查询没有退回一行? 是''处理null

thx求助

2 个答案:

答案 0 :(得分:12)

您的怀疑were correct

所以你的查询基本上是

WHERE 'test' <> 'test2' and  'test' <> Null

评估为

WHERE true and unknown

哪个是unknown

select * from dual where '' = '';

会给出相同(缺乏)的结果

答案 1 :(得分:2)

是的,在Oracle中,空字符串是NULL。