首页 > 解决方案 > Microsoft SQL Server 2014 - 告诉我下面的 SQL 语句到底出了什么问题

问题描述

declare @UnitIdn nchar(30);

set @UnitIdn = N'b';

set @UnitIdn =  @UnitIdn + N'aaaaa';

select @UnitIdn


set @UnitIdn = N'b';

set @UnitIdn =  N'aaaaa' + @UnitIdn 

select @UnitIdn

我知道如果我更改为 nvarchar 它将起作用。

标签: sqlsql-servertsqlstring-concatenation

解决方案


那是因为char类型有固定的长度。因此,您需要修剪在字符串末尾保留的空格。

declare @UnitIdn nchar(30);

set @UnitIdn = N'b';
set @UnitIdn =  rtrim(@UnitIdn) + N'aaaaa';
select @UnitIdn

推荐阅读