【发布时间】:2016-11-01 07:03:02
【问题描述】:
我从 File.txt 进行了批量导入。在 Import 之后,其中一列具有以下文本:
30 x 1,5 mm, O-Ring, EPDM, 70░▒5░ Shore A, schwarz, Tol. nach ISO 3601
但它必须是:
30 x 1,5 mm, O-Ring, EPDM, 70°±5° Shore A, schwarz, Tol. nach ISO 3601
我想使用多重替换,像这样:
,ISNULL(REPLACE(REPLACE(REPLACE([ARTTXT], '░', '°'), '▒', '±'), '▀', 'ß'), '') AS [ARTTXT]
然后我得到:
30 x 1,5 mm, O-Ring, EPDM, 70°°5° Shore A, schwarz, Tol. nach ISO 3601
还有一行:
Spritzschutz-Ring SRP, Typ SS, DN 25, PP, rot, PN 10-40 f³r Flanschverb. aus 2 Vorschweißfl. EN 1092-1 Fom B,
所以你看到 ° 和 ß 工作,但 ± 没有。
为什么?我使用的是 SQL Server 2008 R2。
谢谢。
Greetz Vegeta_77
更新: @Damien_The_Unbeliever 使用 NVARCHAR 会好很多。有用!但最后我遇到了问题:
...mittelgr³n --> 应该是 mittelgrün 所以我的替换是:
REPLACE([ARTTXT], N'³', N'ü')
所以 mittelgrün 有效。但我也在更换: 2-381 --> 2-ü81
为什么?替换不是 ... , N'3', 'ü'
【问题讨论】:
-
THX jarlh。但它必须是:Vorschweißfl。 --> 在 "And another row:" 因为 ß 有效!
-
听起来可能是排序规则问题。
-
现在我尝试了 # 而不是 ± --> 但它是 70°°5°
-
而且我还尝试更改替换语句的顺序 --> 没有效果...
-
您的排序规则似乎无法区分
70和5之间的两个不同字符。它对他们俩一视同仁。
标签: sql sql-server tsql replace sql-server-2008-r2