Saa*_*ail 3 sql-server null select conditional-statements
我有以下SQL表:
CREATE TABLE [dbo].[Test](
[TestID] [int] NOT NULL,
[TestNum] [int] NULL,
[TestReason] [varchar](50) NULL
)
Run Code Online (Sandbox Code Playgroud)
所以TestNum是一个允许NULL值的INT,我在表中插入了大量的数据,其中一些行包含TestNum的NULL值
如果我然后运行以下查询
select *
from Test
where TestNum != 123
Run Code Online (Sandbox Code Playgroud)
查询aboe不返回任何具有NULL值的行.我希望它返回所有行除了那些值为123的行.
为什么是这样?
我在MS-SQL 2000数据库上运行此查询,导入到MS SQL 2005.这有什么影响吗?或者这是所有版本的MS SQL Server的行为标准?
Ano*_*246 12
NULL表示值"未知".因此,NULL = NULL为false.如果要查看NULL,还必须说"OR TestNum IS NULL".