Nob*_*ife 1 sql-server replace unicode-string
我正在使用MS SQL Server Express 2012.
我在网格结果中删除unicode字符U + 02CC(十进制:716)时遇到问题.原文是'λeˌβár'.
我试过这样,它不起作用:
SELECT ColumnTextWithUnicode, REPLACE(ColumnTextWithUnicode , '?','')
FROM TableName
Run Code Online (Sandbox Code Playgroud)
该列具有Latin1_General_CI_AS排序规则,数据类型为nvarchar.我尝试将排序规则更改为二进制文件,但也没有成功:
SELECT ColumnTextWithUnicode, REPLACE(ColumnTextWithUnicode collate Latin1_General_BIN, '?' collate Latin1_General_BIN,'')
FROM TableName
Run Code Online (Sandbox Code Playgroud)
甚至使用NChar()函数,如:
SELECT ColumnTextWithUnicode, REPLACE(ColumnTextWithUnicode , NCHAR(716),'')
FROM TableName
Run Code Online (Sandbox Code Playgroud)
所有三个结果都是'λeˌβár'.
但是,如果我将列转换为varchar,如:
SELECT ColumnTextWithUnicode, REPLACE(CAST(ColumnTextWithUnicode as varchar(100)), '?','')
FROM TableName
Run Code Online (Sandbox Code Playgroud)
结果变为'eßár',删除第一个字符和'ˌ'.
任何想法只删除'ˌ'?
你只需要在字符串模式之前放置N(如果你想查找unicode char):
SELECT REPLACE (N'?e??ár' COLLATE Latin1_General_BIN, N'?', '')
Run Code Online (Sandbox Code Playgroud)