0

我将如何在更新语句中使用合并。我见过的所有示例都使用 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' ));  
4

2 回答 2

1

您的查询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
于 2011-03-10T19:08:13.433 回答
0

天啊。你不能更新功能!

SET n.OC = COALESCE(o.OC, 0) 

至少

于 2011-03-10T19:05:56.293 回答