我将如何在更新语句中使用合并。我见过的所有示例都使用 select 语句。
UPDATE d.n n JOIN d.o o ON n.ID = o.ID SET n.OC = o.OC
需要 n.ocCoalesce( 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' ));
您的查询UPDATE d.n n JOIN data.o_ o ON n.id = o.id SET COALESCE(n.OC, null) = o.OC
没有意义。COALESCE(x,y)
如果 x 不为 null,则使用 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
天啊。你不能更新功能!
SET n.OC = COALESCE(o.OC, 0)
至少