【发布时间】:2015-12-11 09:44:45
【问题描述】:
我有一个表格,其中数字存储在 nvarchar 数据类型中。数据如下:
Numbers
---------
200
504 040
694 380
153 272
26 296
现在我想去掉数字中的空格。但是,REPLACE(Numbers,' ','') 不起作用,因为空格似乎是某种特殊的“blank space”。
所以我尝试使用我在 SO (link) 上找到的函数在这里找到任何特殊字符。什么都没有发生,没有找到任何特殊字符。
所以下一步是将记录导出到.csv 文件并使用TotalCMD 检查数据的编码。结果可以在这里看到:
任何想法可能会出错以及如何替换这些空格?我认为 Unicode 编码显示了问题,但我缺乏这方面的知识,所以我也可能是错误的。
更新 #1 - 向您展示更多
表格如下所示:
Category Number
-------------------
Cars 200
Cars 504 040
Cars 694 380
Cars 153 272
Cars 26 296
Bikes 50 000
Bikes 21 412
Bikes 8 541
现在我运行查询:
SELECT
t.Category, REPLACE(t.Numbers,' ','')
FROM
tableMix AS t
WHERE
t.Category = 'Cars'
SELECT
t.Category, REPLACE(t.Numbers,' ','')
FROM
tableMix AS t
WHERE
t.Category = 'Bikes'
奇怪的是 - 第一个查询不会替换 Cars 类别的空格,但是第二个查询对于 Bikes 类别的数字值没有任何问题。
【问题讨论】:
-
我认为你做错了什么,因为替换必须在这里工作。请发布您的查询。
-
我不这么认为,与其他号码一样,我没有问题,我也是这样做的。查询已经发布,只是没有 SELECT 和 FROM 子句。我仍然为你更新问题,秒。
-
试试this question的回答
-
谢谢。似乎就是这样 - NCHAR(160)。
标签: sql-server tsql encoding replace