我试图通过向其添加数据来更新字段。 如果它已经包含数据我不会更新它,否则我会。
如果它已经包含数据,我希望它附加逗号和空格后跟单词。 e.g。
update myTable
set Prefixes = convert(nvarchar(max),Prefixes) + ', abc'
where MyCol='xyz' and Prefixes not like '%abc%'
我试图让这个工作,所以如果前缀列最初为空,它只包含单词'abc'
而不是',abc'
我该怎么做?
答案 0 :(得分:1)
听起来你需要CASE
:
update myTable
set Prefixes =
case
when Prefixes is null or Prefixes = ''
then 'abc'
else convert(nvarchar(max),Prefixes) + ', abc'
end
where MyCol='xyz' and (Prefixes not like '%abc%' or Prefixes is null)
答案 1 :(得分:0)
您还需要在null
子句中过滤为NOT LIKE
之前检查前缀的WHERE
值。 Sql-Demo
update myTable
set Prefixes = isnull(nullif(rtrim(Prefixes),'') + ', abc','abc')
where MyCol='xyz' and isnull(Prefixes,'') not like ', abc%'