T-SQL替换空格

时间:2015-12-11 09:44:45

标签: sql-server tsql encoding replace

我有表格,其中数字存储在nvarchar数据类型中。数据如下:

Numbers
---------
200
504 040
694 380
153 272
26 296

现在我想摆脱数字中的空白区域。但是,REPLACE(Numbers,' ','')无效,因为空格似乎是某种特殊的“blank space”。

所以我尝试使用我在SO(link)上找到的函数找到任何特殊字符。什么都没发生,没有找到任何特殊的角色。

所以下一步是将记录导出到.csv文件,并使用TotalCMD检查数据的编码。结果可以在这里看到:

enter image description here

任何可能出错的想法以及如何更换这些空白区域?我认为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类别的数值没有任何问题。

1 个答案:

答案 0 :(得分:0)

尝试从nvarchar中获取数字

SELECT 
    t.Category, cast(t.Numbers as int)
FROM 
    tableMix AS t
WHERE 
    t.Category = 'Cars'