有人可以解释为什么我对这两个类似查询有两个不同的结果吗?Where子句有时会过滤NULL值,但有时不会
例子:
-- Create table t1 and insert values.
CREATE TABLE t1 (a NVARCHAR(4) NULL)
INSERT INTO t1 values (NULL)
INSERT INTO t1 values ('0')
INSERT INTO t1 values ('1')
GO
PRINT 'Testing NULL values'
DECLARE @varname NVARCHAR(4)
SET @varname = '1'
SELECT *
FROM t1
WHERE a <> @varname
SELECT *
FROM t1
WHERE a <> '1'
GO
-- Drop table t1.
DROP TABLE t1
谢谢!
你是什么意思由不同*结果*? – MilkyWayJoe
我在两个查询中都得到相同的一行结果('0')。 (如我所料) –
我也是。认为这是一个空值<>空值问题首先 –