请考虑名为Employee的表,其中包含以下两列:
EmpType有两个有效值,ES或NULL。
当我在查询下面开火时,我得到100行
select * from Employee;
下面的查询给了我60行:
select * from Employee where EmpType = 'ES'
虽然select * from Employee where EmpType <> 'ES
'给了我0行。
为什么这样?我应该得到40行,其中EmpType不是ES。
我正在使用Oracle Sql DB。
答案 0 :(得分:2)
Null
不等于任何东西,甚至不等于null。所以说不等于ES
,null 不不等于ES
。如果你明白我的意思。
因此,要获得所需的值,您需要is null
。
select * from Employee where EmpType is null
上的这篇文章
编辑:正如@Allan所指出的,在Oracle中,空字符串相当于null。
答案 1 :(得分:0)
&#34;&lt;&gt;&#34;与数字一起使用不与nvarchar
所以你应该使用:
从员工中选择*,其中EmpType +&#39;&#39;喜欢&#39; null&#39;
从Empee为空的员工中选择*