替换一列中的多个值

问题描述 投票:0回答:1

我正在尝试更新我的SQL表,并将列中的多个值替换为更新的值。我了解如何针对单个值执行以下操作:

update [table].[name]
set [columnname] = replace ([columnname], 'December 2017', '2018 December') 
where [columnname] like 'December 2017%'

如何替换多个值,例如

replace ([columnname], 'Mar-2017', '2017 March')
replace ([columnname], 'Feb-2016-test1', '2016 Feb')

我知道您可以执行嵌套的replace语句,但是由于我似乎无法使其正常工作,因此它如何与SET函数一起使用。

set [columnname] = replace(replace([columnname], 'December 2017', '2018 December'), 'Mar-2017', '2017 March') 
where [columnname] like 'December 2017%' or like 'Test'

现在这显然是不正确的,请给我一些帮助以解决此问题:)

sql sql-server
1个回答
1
投票

为什么不尝试如下CASE语句:

update [table].[name]
          set [columnname] = 
(case when [columnname] like 'December 2017%'  then REPLACE([columnname], 'December 2017', '2018 December')
      when [columnname] like ... then... 
ELSE...
END) 
© www.soinside.com 2019 - 2024. All rights reserved.