我有一个表格,其中一列的多行中包含错误符号(“�”)。
下面的 TSQL 脚本不起作用。
UPDATE S
SET S.Offering_Details = REPLACE(S.Offering_Details, '�', '...')
FROM tblSacrifices S
相关列的数据类型为 nvarchar(230),并允许空条目。
数据来自 Excel 并通过 Visual Studio Windows 应用程序转换的 csv 文件。数据最初是“...”,但我认为也许 word/excel 将其归类为一个字符(而不是 3 个单独的“.”)。当我的应用程序从 CSV 文件读取原始字符串时,它(无意中)在将数据提交到数据库之前将“...”替换为“�”。
请帮忙
最佳答案
想通了。 感谢大家的帮助。
我必须转换为二进制。所有超过 65500 的 unicode 字符都需要这个,因为正常的 REPLACE() 不起作用。
UPDATE S
SET S.Offering_Details = REPLACE(S.Offering_Details, nchar(65533) COLLATE Latin1_General_BIN, '...')
FROM tblSacrifices S
关于SQL Server 2008 : replace string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3333952/