为什么这没有给出预期的结果?
DECLARE @1 char(90);
DECLARE @2 char(90);
DECLARE @3 char(90);
Set @1 = 'first part';
set @2 = 'second part';
set @3 = @1 + @2;
print @3; -- outputs 'first part' where did 2nd part go?
为什么这没有给出预期的结果?
DECLARE @1 char(90);
DECLARE @2 char(90);
DECLARE @3 char(90);
Set @1 = 'first part';
set @2 = 'second part';
set @3 = @1 + @2;
print @3; -- outputs 'first part' where did 2nd part go?
第一部分是char(90)
用空格填充到固定大小 90。@3
也是 90 个字符,因此仅包含@1
. 切换到NVARCHAR(4000)
。char
除非您知道自己在做什么,否则切勿使用。
您可以修剪@1
并@2
查看更多结果(如果它适合 of ,则可能是所有结果CHAR(90)
)@3
。
SET @3 = RTRIM(@1) + RTRIM(@2);
此外,正如@usr 提到的,您可以做得@3
更大以容纳@1
和@2
. CHAR(180)
会和他对NVARCHAR
(或VARCHAR
)的建议一样有效。