【发布时间】:2020-04-17 00:21:52
【问题描述】:
我面临无法更新或替换数据库中某些字符的问题。 以下是我检索该文本时在我的列中的样子:
如您所见,“master”和“degree”之间有一个未知字符,我什至无法将其粘贴到此处。
我也尝试更新并用下面的代码替换它(我无法在此处粘贴这两条垂直线,因为它们不受任何浏览器支持,我不确定它们是什么,请参阅上图以查看其中的内容我的 SQL 语句)。
begin transaction
update gm_desc set projdesc=replace(projdesc,'%â s%','') where projdesc like '%âs%' and proposalno = '15-149-01'
你可以在这里看到真正的 SQL 语句:
我尝试更新或替换它,但我做不到。更新声明成功运行,但我仍然看到奇怪的特殊章程。我将不胜感激。
【问题讨论】:
-
projdesc是NVarChar吗?您是否尝试过匹配集合中的字符 not,例如like '%[^a-z0-9]%'查找行?您可以以十六进制转储列以获取字符值,例如select projdesc, Cast( projdesc as VarBinary(1000) ) as Hex from gm_desc where projectdesc like '%[^a-z0-9 ]%';. -
支持HABO的评论:我很确定,这是某种2字节编码的撇号字符,代表“硕士学位” .首先,您应该找出字符串的编码。
VARBINARY(MAX)的演员表 - 正如@HABO 所建议的那样 - 将帮助您了解内部结构。
标签: sql sql-server tsql sql-server-2016