T-SQL,删除字符串中的空格

Ste*_*McD 5 t-sql replace

我在SQL中有两个字符串,REPLACE函数只适用于其中一个,为什么呢?

例1:

SELECT REPLACE('18 286.74', ' ', '')
Run Code Online (Sandbox Code Playgroud)

例2:

SELECT REPLACE('z z', ' ', '')
Run Code Online (Sandbox Code Playgroud)

示例1的输出仍为"18 286.74",而示例2的输出为"zz".为什么SQL对这两个字符串的反应不同?

更新:

当运行select replace('123 123.12', ' ', '')正常,仍然没有'18 286.74'.

Jab*_*ezz 12

按以下方式测试.

select unicode(substring('18 286.74', 3, 1))
Run Code Online (Sandbox Code Playgroud)

如果代码返回32然后它是一个空格,如果没有,它是一个不同的Unicode字符,你的替换''将无效.

  • 在不间断空格的情况下,你总是可以做REPLACE('18 286.74',CHAR(160),'') (4认同)