sql - 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 它将起作用。
解决方案
那是因为char
类型有固定的长度。因此,您需要修剪在字符串末尾保留的空格。
declare @UnitIdn nchar(30);
set @UnitIdn = N'b';
set @UnitIdn = rtrim(@UnitIdn) + N'aaaaa';
select @UnitIdn
推荐阅读
- postgresql - postgres窗口函数三倍查询时间
- c++ - 使用 SDL2 时,'' 的左侧必须有类/结构/联合
- python - python中的Tkinter - 未找到
- python - 如何使 dockerized Flask 应用程序将输出写入文件?
- javascript - 如何从 NodeJS 连接到 PostgreSQL
- laravel - Laravel - 从控制器中的多个字段计算最小值
- html - 在 mvc razor 上的 href 中解析错误“/@”
- php - 如果用户的时区使用 PHP 更改,如何处理存储在数据库中的用户数据
- docker - Kibana Docker“这可能需要几分钟”但从不启动
- arrays - 将数组存储在数据库 Wordpress 中