假设我有这张表:
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
换句话说,查询必须只更新非空字段。你是怎么做到的?
答案 0 :(得分:8)
最简单的答案是使用COALESCE
UPDATE table
set col1 = COALESCE(col1,"bla"),
col2 = COALESCE(col2,"bla"),
col3 = COALESCE(col3,"bla"),
col4 = COALESCE(col4,"bla")
where id = 1
其他链接。
答案 1 :(得分:0)
代替Coalesce,您也可以使用IsNUll,coalesce和isnull在很多方面都是等价的
Update Table
set col1 = Isnull(col1,'bla'),...
当然如果RD希望它也适用于空字符串,那么JW已经给出了解决方案