如何将REPLACE与包含撇号的字符串一起使用?

时间:2012-12-19 17:51:44

标签: sql-server string apostrophe

  

可能重复:
  Replace single quote in sql server

所以我正在尝试使用以下代码:

UPDATE TableName
SET FieldName = REPLACE(FieldName, 'SearchFor', 'ReplaceWith');

它非常适合我需要做的事情,除了我需要搜索的内容是“有效的驾驶执照”。撇号似乎与代码不一致。我试过这样做:

'valid driver''s license'

......但这似乎也不起作用。我收到以下错误:

Argument data type text is invalid for argument 1 of replace function.

如果有人以前处理过此事,我会很乐意帮忙!这样可以节省我很多时间,而不是手动更新每条记录。 -__-

埃利

3 个答案:

答案 0 :(得分:7)

错误告诉您问题究竟是什么。 FieldNametext类型的列,不支持REPLACE函数。首先尝试将第一个参数转换为VARCHAR(MAX),它应该可以正常工作。 IE:

UPDATE TableName
SET FieldName = REPLACE(CAST(FieldName AS VARCHAR(MAX)), 'SearchFor', 'ReplaceWith');

答案 1 :(得分:1)

这很有趣。我刚刚在几分钟前碰到了这件事。事实证明我必须改变这个:

更新TableName SET FieldName = REPLACE(FieldName,'SearchFor','ReplaceWith');

到此: 更新TableName SET FieldName = REPLACE(cast(FieldName as varchar(5000)),'SearchFor','ReplaceWith');

答案 2 :(得分:-1)

您必须使用斜杠转义单引号。

UPDATE TableName
SET FieldName = REPLACE(FieldName, 'Isn\'t', 'Is not');