SQL Server:RTRIM无法删除空格



我的表中的列值之一在每个字符串的末尾都有空格。

在我的选择查询中,我正在尝试修剪字符串末尾的空格,但值没有得到修剪。

SELECT
EmpId, RTRIM(Designation) AS Designation, City 
FROM
tblEmployee

这不是修剪空白空间,不仅如此,甚至LTRIM(RTRIM(Designation) AS Designation也不起作用。

我也试过

CONVERT(VARCHAR(56), LTRIM(RTRIM(Designation))) AS [Designation]

没有什么可以修剪字符串末尾的空白区域......

任何帮助表示赞赏

编辑

感谢评论中的建议,我使用ASCII()检查了列中的最后一个值。它160是一个不间断的空间。

如何删除此不间断空格?

如何删除此不间断空格?

只需将其替换为''CHAR()函数即可

SELECT REPLACE(YourColumn, CHAR(160), '')
FROM YourTable;

由于该值可以包含不间断空格,因此在执行修剪之前,您需要将这些空格替换为常规空格:

SELECT
EmpId, RTRIM(REPLACE(Designation,char(160),' ')) AS Designation, City 
FROM
tblEmployee

我遇到了类似的问题,在修剪功能不起作用的情况下,使用以下脚本删除空格 -

SELECT LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE([ColumnName], CHAR(10), 
CHAR(32)),CHAR(13), CHAR(32)),CHAR(160), CHAR(32)),CHAR(9),CHAR(32))))
FROM [TableName]

欲了解更多信息,请访问此页面 - http://www.ashishblog.com/trim-not-removing-spaces-in-sql/

如果您的数据类型是 Varchar,则这些都不起作用。确保将数据类型更改为 Nvarchar。然后使用修剪。

最新更新