我在t-sql中有一個奇怪的行爲。給以下測試奇怪的行爲:T-sql字符/字符串連接char
DECLARE @a char(22) = 'John went to buy a car', @b char(15)= 'Tom went to pub';
SELECT IIF(1=1 , @a, @b)+'. He met a friend';
輸出正常: 約翰去買車。他認識了一位朋友。
SELECT IIF(1=2 , @a, @b)+'. He met a friend';
輸出錯誤:
Tom went to pub . He met a friend.
變量字符的串聯分配22個字符,如果測試結果爲真,和22個字符,否則!因此,在通過IIF進行字符串連接(但與CASE相同)的情況下,輸出將分配給第一個表達式(@b變量被認爲是22個字符!)任何想法?
謝謝!這是一個很好的答案。 – user1732337