SQL Server RTRIM(LTRIM([City]))不剥离空格

Wil*_*pez 2 sql sql-server whitespace trim special-characters

在对一个sproc进行故障排除后,我意识到这些字段有一个额外的字符,我假设空白或一些不可见的特殊字符.例如,city字段包含值'Abbeville',其长度(LEN([city])为10.我以为我可以使用以下内容修剪空白区域:

  UPDATE US_City_State
  SET [City] = RTRIM(LTRIM([City]))
Run Code Online (Sandbox Code Playgroud)

那没用.我转向varbinary但我不知道该怎么做.该列定义为nvarchar.这是演员价值.

  0x4100620062006500760069006C006C006500A000
Run Code Online (Sandbox Code Playgroud)

[更新]样本数据

  City          City_Hex_Value
  Aaronsburg    0x4100610072006F006E0073006200750072006700A000
  Abbeville     0x4100620062006500760069006C006C006500A000
Run Code Online (Sandbox Code Playgroud)

谢谢!

Fel*_*tan 10

也许空白不仅仅是一个空间:

试试这个:

  UPDATE US_City_State
  SET [City] = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE([City], CHAR(10), ''), CHAR(13), ''), CHAR(9), ''), CHAR(160), '')))
Run Code Online (Sandbox Code Playgroud)

说明: 某些空格不是空格('').以下是一些空白:

CHAR(9)     =   Horizontal Tab
CHAR(10)    =   Line Feed
CHAR(13)    =   Carriage Return
CHAR(160)   =   Non-Breaking Space
Run Code Online (Sandbox Code Playgroud)

我做的是删除上面的空格.您可以用空格('')替换它,或者CHAR(32)取决于您想要如何处理它们.