更换不工作!

use*_*271 2 sql t-sql sql-server-2005 sql-server-2008

我有包含错误字符值的列?。现在我想把它改成 character b。为此,我使用以下语句:

SELECT REPLACE(name,'?','b') from contacts;
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时什么也没有发生,它返回值?.

我做错了什么?我怎么能换这个?

Bra*_*adC 6

您实际上是在尝试更改表中的值吗?在这种情况下,您需要执行以下操作UPDATE

UPDATE contacts
SET name = Replace(name,'?','b')
Run Code Online (Sandbox Code Playgroud)

否则,如果您只是想检索修改后的值,那么您的语法应该可以正常工作。(我测试过,?不必转义或其他任何东西):

SELECT name, Replace(name,'?','b') as Fixed
FROM contacts
Run Code Online (Sandbox Code Playgroud)


Rus*_*ure 5

我以前见过的另一种可能性是该字符看起来像一个普通的旧 ASCII 问号,但实际上并非如此。其实是不同的性格。我会选择文本并将其粘贴到记事本中,然后将其复制并粘贴到我的查询中。


sho*_*639 0

尝试这个

update contacts set name=replace(name, '?', 'b')
Run Code Online (Sandbox Code Playgroud)