我正在使用 MS SQL Server Express 2012。
我无法删除 unicode 字符 U+02CC (十进制:716)在网格结果中。原文是'λeˌβár'。
我这样试了,还是不行:
SELECT ColumnTextWithUnicode, REPLACE(ColumnTextWithUnicode , 'ˌ','')
FROM TableName
该列具有 Latin1_General_CI_AS 排序规则,数据类型为 nvarchar。我尝试将排序规则更改为二进制,但也没有成功:
SELECT ColumnTextWithUnicode, REPLACE(ColumnTextWithUnicode collate Latin1_General_BIN, 'ˌ' collate Latin1_General_BIN,'')
FROM TableName
或者甚至使用 NChar() 函数,例如:
SELECT ColumnTextWithUnicode, REPLACE(ColumnTextWithUnicode , NCHAR(716),'')
FROM TableName
所有三个结果都是“λeˌβár”。
但如果我将列转换为 varchar,例如:
SELECT ColumnTextWithUnicode, REPLACE(CAST(ColumnTextWithUnicode as varchar(100)), 'ˌ','')
FROM TableName
结果变成'eßár',去掉第一个字符和'ˌ'。
有什么想法可以只删除“ˌ”吗?
最佳答案
你也只需要在字符串模式之前加上 N(如果你想查找 unicode char):
SELECT REPLACE (N'λeˌβár' COLLATE Latin1_General_BIN, N'ˌ', '')
关于sql-server - 替换 MS SQL Server 中的特定 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24197784/