sql-server - 替换 MS SQL Server 中的特定 Unicode 字符

标签 sql-server replace unicode-string

我正在使用 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/

相关文章:

c# - 替换C#中所有目录和文件的名称

linker-errors - 链接错误:未定义对 icu_50::UnicodeString::UnicodeString() 的引用

c++ - 在二进制文件中读取和写入字符串c++

c# - 如何在 LINQ 中进行子选择?

java - if else 中的准备语句

mysql - 如何使用spark sql比较两个表?

sql - 从函数执行存储过程

python - Python 标点符号替换

javascript - jQuery:追加到文本区域内段落的 html 的最佳方式

Java Unicode 字符串长度