使用Replace()时出现意外结果

时间:2015-08-27 19:39:31

标签: sql replace

尝试替换()字符:

REPLACE(REPLACE(REPLACE(REPLACE(NetworkMemberId,'é','e'),'í','i'), 'ó','o'),'ñ','n') 

但它正在转换所有e,i,o和n,甚至是大写。

我尝试使用char(233)char(236)char(243)char(241),结果相同。

1 个答案:

答案 0 :(得分:1)

来自https://msdn.microsoft.com/en-us/library/ms186862.aspx

  

REPLACE根据输入的排序规则执行比较。至   在指定的排序规则中执行比较,您可以使用COLLATE   将明确的排序规则应用于输入。

猜猜你想申请像Latin1_General_CS_AS这样的东西:

REPLACE(REPLACE(REPLACE(REPLACE(NetworkMemberId COLLATE 
Latin1_General_CS_AS,'é','e'),'í' COLLATE Latin1_General_CS_AS,'i'), 
'ó' COLLATE Latin1_General_CS_AS,'o'),'ñ' COLLATE 
Latin1_General_CS_AS,'n')

**编辑**

哎呀 - 错过了重音敏感度。