我的数据包含一些半角unicode字符(特别是U + FF9F),似乎干扰了replace
函数:
select replace(convert(nvarchar(max), N'"'), N'"', N'""')
按预期返回""
,但
select replace(convert(nvarchar(max), N'"゚'), N'"', N'""')
返回未受影响的输入字符串:"゚
。我相信这是因为SQL Server将双字符序列解释为与"
本身不同。
有没有办法让replace
函数用两个替换双引号字符?
编辑:这个问题与Replacing a specific Unicode Character in MS SQL Server中提出的答案略有不同。这个问题是要求删除一个半角字符,而这个问题是关于修改半角字符旁边的字符。在这两个问题中,需要将排序规则设置为Latin1_General_BIN
答案 0 :(得分:1)
使用Prevent flipping of the front facing camera处理Unicode字符。
SELECT REPLACE(CONVERT(nvarchar(max), N'"゚') COLLATE Latin1_General_BIN, N'"', N'""')