Sql Server替换功能

时间:2012-09-06 23:48:56

标签: sql-server

我正在尝试运行以下语句,但它没有按预期工作。

它意味着获取子查询值并将其从注释字段中删除(替换为空字符串)。

我已经检查过子查询返回了我期望的正确值,但是替换函数没有像我期望的那样工作。有人会有任何想法吗?

提前谢谢。

update contacts set comment = 
replace(comment,
   (select 'Specialty: ' + a.categoryname
    from contacts c
    join categories a
    on c.categorycode = a.categorycode
    where contacts.contactid = c.contactid)
, '')

2 个答案:

答案 0 :(得分:3)

这应该是我猜的

update contacts 
set    comment = replace(comment,'Speciality :' + categories.categoryname,'')
from   contacts inner join categories 
on     contacts.categorycode=categories.categorycode
and    contacts.contactid=categories.contactid

in sqlfiddle

答案 1 :(得分:0)

这是替换功能:

REPLACE ( string_expression , string_pattern , string_replacement )

您确定string_pattern符合string_expression中的内容吗?

以下是相同信息的link