有人可以解釋爲什麼我對這兩個類似查詢有兩個不同的結果嗎?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')。 (如我所料) –
我也是。認爲這是一個空值<>空值問題首先 –