如何在更新语句中使用coalesce。我见过的所有例子都使用了select语句。
UPDATE d.n n JOIN d.o o ON n.ID = o.ID SET n.OC = o.OC
需要n.oc到Coalesce( n.oc,0)
但是Sql失败
CALL SQLExecute(CONCAT('UPDATE d.n n JOIN data.o_ o ON n.id = o.id SET COALESCE(n.OC, null) = o.OC' ));
答案 0 :(得分:1)
您的查询UPDATE d.n n JOIN data.o_ o ON n.id = o.id SET COALESCE(n.OC, null) = o.OC
没有意义。如果x不为null,则COALESCE(x,y)
使用x,否则使用y。
所以你的查询应该是
UPDATE d.n n JOIN data.o_ o ON n.id = o.id SET n.OC = o.OC //if null allowed
或者
UPDATE d.n n JOIN data.o_ o ON n.id = o.id SET n.OC = COALESCE(o.OC,'somevalue') //if null not allowed
答案 1 :(得分:0)
哦,我的。你无法更新功能!
SET n.OC = COALESCE(o.OC, 0)
至少