私は最近、私を混乱させるSQLコードスニペットを読んでいます。SQL ServerはNULL値を空の文字列として使用しますか?
declare @test nvarchar(100) = NULL
select
case
when @test <> '' then 1
else 0
end
私はNULL
が空の文字列に相当しないと思うので、結果は、1
になると、かなり自信がありました。ただし、実際の出力は0
です。
(私はWindows 7の64ビット版にMS SQL Server 2012のを使用しています)私の知る限り理解し
、''
は、値が0の文字が含まれていることを示し、そしてNull
データがであることを意味空の文字列です不在。しかし、今私はこれについては分かりません。誰かがそれを整理するのを助けることができますか?これはいくつかの免除のケースですか?
[こちら](http://www.w3schools.com/sql/sql_null_values.asp)をお読みください。あなたがパーティーに招待状を送っていることを知らせてください。 '' ''は' 'rsvpのスリップを無駄に戻すようなものだ。 「ヌル」は何も戻っていない。 – JohnHC
その比較の結果は真または偽ではない "未定"です – Lamak
比較のどちらかにNULLがある場合、結果は真または偽ではなく、結果はNULLです。これは、比較の結果が真であると評価されなかったことを意味し、elseに該当するNULLに評価されます。 –