2

假设我有这张桌子:

ID | col1 | col2 | col3 | col4
1  |  val |      |  val |

有没有办法修改这个查询:

UPDATE table set col1 = "bla", col2 = "bla", col3 = "bla", col4 = "bla where id = 1

所以我最终得到:

ID | col1 | col2 | col3 | col4
1  |  val |  bla |  val |  bla

换句话说,查询必须只更新不为空的字段。你是怎样做的?

4

2 回答 2

8

最简单的答案是使用COALESCE

UPDATE table 
set     col1 = COALESCE(col1,"bla"), 
        col2 = COALESCE(col2,"bla"), 
        col3 = COALESCE(col3,"bla"), 
        col4 = COALESCE(col4,"bla")
where   id = 1

其他链接。

于 2013-02-25T06:48:42.990 回答
0

除了 Coalesce,您还可以使用 IsNUll,coalesce 和 isnull 在许多方面是等价的

Update Table
set col1 = Isnull(col1,'bla'),...

当然,如果 RD 也希望它也适用于空字符串,JW 已经给出了解决方案

于 2013-02-26T05:58:22.337 回答