【发布时间】:2013-11-02 19:16:13
【问题描述】:
我有一个由三列组成的 sql 表 ID,KEY 和 VALUE
现在我想根据与该行关联的KEY 列更新该表的特定行。
我尝试按照 UPDATE 查询在单个更新查询中更新多行。
UPDATE TABLE_NAME
SET VALUE=(CASE WHEN [KEY]='KEY1' THEN 'VALUE 1 MODIFIED'
WHEN [KEY]='KEY3' THEN 'VALUE 3 MODIFIED'
END)
但是这个查询用NULL 值更新了不匹配的行,如下图所示。
他们还有其他方法可以编写单个UPDATE 查询来根据不同的条件修改不同的列吗?
【问题讨论】:
-
您需要在
CASE语句中包含ELSE VALUE END。如果没有when匹配,则CASE返回 null。
标签: sql-server-2008