2015-05-04 65 views

回答

1

我们不能比较空值与=我们特别操作者在SQL比较空 值 成为各运营商

SELECT * 
FROM DATA 
WHERE VALUE is not NULL; 

null不是任何Value.Sql考虑Null作为未知/不存在的数据

1

下面的代码工作,如果应该,如果你更换工作“!=”与“不是”。

+0

我知道,为什么这不起作用呢?这似乎合乎逻辑。 – dineshdileep

+1

NULL是一个特殊情况,没有什么等于NULL。尽管不是1或2,NULL也不会被挑选出来:'VALUE NOT IN(1,2)'。 – mjsqu

+0

他们的方式我概念化它,NULL是缺少数据。使用数据之间的相等比较器和缺少数据它是一个逻辑上的非起动器。看看这个类似的问题的另一个答案:http://stackoverflow.com/questions/12853944/why-in-sql-null-cant-match-with-null –

1

您编写的条件格式不正确。 如果你想从你的表中选择不为空值,那么你可以使用下面的命令

select *from table name where column name IS NOT NULL 
0

因为NULL值表示没有数据的,它没有任何意义与价值,它比较的东西与等号运算符。

您可以通过运行语句之前关闭

SET ANSI_NULLS OFF 

设置ANSI_NULLS让你的SELECT语句的工作。你可以在这里得到进一步的信息:

https://msdn.microsoft.com/en-us/library/ms188048.aspx

+0

请注意,这是一个MS SQL Server的特定功能。 (并没有指定DBMS ...) – jarlh

0

的代码将无法在SQL工作,因为它是不可能使用以下运算符=测试NULL值,<,或者<>。无法比较NULL和0,因为它们不相同。

您可以使用IS NULL和IS NOT NULL运算符来测试NULL值。

SELECT * 
FROM DATA 
WHERE VALUE IS NOT NULL 

http://www.w3schools.com/sql/sql_null_values.asp

0

空不包含任何价值。 Null既不是零也不是任何值。 所以我们不能用比较运算符来比较它。 而不是使用'=',你应该使用'IS'关键字。

SELECT * FROM DATA WHERE VALUE IS NOT NULL;