在单个查询中更新多个列

时间:2014-04-03 11:09:09

标签: sql sql-server

我有单表中列的列表,我想更新到其他地方。

表名:HyundaiRaw_New_april

Original: 
HART 2008-A
HART 2009-A
HART 2010-A
HART 2010-B
HART 2011-A
HART 2011-B
HART 2011-C
HART 2012-A
HART 2012-B
HART 2012-C
HART 2013-A

我希望将上述内容更新为'ABC 2008-A'。我希望将HART替换为" ABC" 我尝试使用以下查询进行更新

update HyundaiRaw_New_april
set deal='HART 2009-A','HART 2010-A','HART 2010-B'
where DEAL='ABC 2009-A','ABC 2010-A','ABC 2010-B'

update HyundaiRaw_New_april
set deal=HART 2009-A,HART 2010-A,HART 2010-B
where DEAL=ABC 2009-A,ABC 2010-A,ABC 2010-B

它不起作用

3 个答案:

答案 0 :(得分:1)

请尝试:

update 
  HyundaiRaw_New_april
set DEAL=REPLACE(DEAL, 'HART', 'ABC')

答案 1 :(得分:0)

它应该适合你...

UPDATE TABLENAME
SET COLUMNNAME = REPLACE(COLUMNNAME,'oldValue','newValue');

答案 2 :(得分:0)

update HyundaiRaw_New_april
SET DEAL =  CASE WHEN DEAL = 'ABC 2009-A' THEN 'HART 2009-A'
                 WHEN DEAL = 'ABC 2010-A' THEN 'HART 2010-A'
                 WHEN DEAL = 'ABC 2010-B' THEN 'HART 2010-B'
            END

如果没有条件,您还可以在CASE语句中使用ELSE子句添加默认值,该列将更新为ELSE子句中提到的默认值。