問題:VARCHARとCHARとの間にSQL Serverのヌルの比較
- 私は2列を持つテーブルを持って、1つの文字(1)と、別のvarchar(1)。
- は、私は彼らが等しくないことを得る私は2列は
- 値比較NULLS
- と行を挿入
- なぜ?
コード:
CREATE TABLE ss_1
(
[char] CHAR(1) ,
[varchar] VARCHAR(3)
)
INSERT INTO TimeCurrent..ss_1
(char, varchar)
VALUES (NULL,-- char - char(1)
NULL -- varchar - varchar(3)
)
SELECT CASE WHEN S.char = S.varchar THEN 'yes'
ELSE 'no'
END AS eq2
FROM ss_1 AS S
FIDDLE:そのような
http://sqlfiddle.com/#!6/84bc4/2/0
NULL!= NULLこれを参照してください:http://stackoverflow.com/questions/1843451/why-does-null-null-evaluate-to-false-in-sql-server – n8wrl
これは2つのINTと彼らも同じではありません。 UNKNOWN = UNKNOWNは未知であるため、等しくない結果となります。 –
@juergend、これは不明のためではありません=不明な点は等しくありません。 –