使用基于更新的列更改为null

时间:2014-01-16 11:20:00

标签: sql sql-update

嗨我有一个更新查询,如果一个字段为null,那么我希望值转到另一个字段

这是我想做的一个例子:

UPDATE Table SET
CASE WHEN Column1 is NULL
THEN Column2 = @Update 
ELSE Column1 = @Update 
END;

现在这不起作用,因为我在单词case上遇到错误但有没有办法做我想要完成的事情?我知道如果我使用两个更新语句,但是想知道它是否可以在一个查询中完成,那么可以这样做吗?

1 个答案:

答案 0 :(得分:3)

您在SQL语句中使用的CASE语法不正确。 CASE必须返回一个表达式,它不能在纯SQL中包含一个语句。

update Table 
  Set Column1 = Case when Column1 is NULL Then NULL Else @Update END,
      Column2 = Case when Column1 is NULL Then @Update Else Column2 END