누군가 내게 두 가지 유사한 쿼리를 사용하여 두 가지 다른 결과가 나타나는 이유를 설명 할 수 있습니까?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')를 얻습니다. (내가 기대했던대로) –
나도. 처음에는 Null <> Null 질문이라고 생각했습니다. –