我有以下代碼:爲什麼Select語句如果不返回結果則不會分配空字符串或空值?
declare @testValue nvarchar(50) = 'TEST';
select @testValue = 'NOTUSED' where 1 > 2;
select @testValue; -- Outputs 'TEST'
select @testValue = 'USED' where 2 > 1;
select @testValue; -- Outputs 'USED'
通過以上,是從未使用過的第一項任務,因爲在where子句失敗。第二個是正確完成並使用返回。
爲什麼SQL在這種情況下不返回空值,並且在where子句失敗的第一個賦值之後將NULL值賦給@testValue?
那些>標誌是否正確? 2> 1是真的,對嗎? – mikey
也值看起來應該是testValue – swestner
嗯。你是對的。我得到它倒退。運行時的第一個選擇語句將返回一個空的結果集。但是在這種情況下,@testValue永遠不會設置爲NULL或空字符串。它仍然保留了'TEST'的價值。我很好奇爲什麼會發生這種情況,如果我錯過了一些東西。 – SamIAm