合并中的内部查询以设置空值
inner query in coalesce to set null values
我是 postgres 的新手,我想将空字段设置为其他一些值。当我 运行 这个查询时,它工作正常:
SELECT COALESCE(Field,'xxx) from Table;
但是,我不想为所有这些字段设置 'xxx',而是想这样填写它们:
SELECT COALESCE(Field,select id from user where user.id = someOtherTable.id) from Table;
在这一篇中,我在 select 附近遇到语法错误。
如何动态设置这些值?
你的问题不是很清楚,但你可能正在寻找这样的东西:
UPDATE mytable m
SET field = COALESCE(field, o.value)
FROM someothertable o
WHERE m.id = o.id;
正如@Abelisto 在评论中所说,内部查询周围的括号有效
我是 postgres 的新手,我想将空字段设置为其他一些值。当我 运行 这个查询时,它工作正常:
SELECT COALESCE(Field,'xxx) from Table;
但是,我不想为所有这些字段设置 'xxx',而是想这样填写它们:
SELECT COALESCE(Field,select id from user where user.id = someOtherTable.id) from Table;
在这一篇中,我在 select 附近遇到语法错误。
如何动态设置这些值?
你的问题不是很清楚,但你可能正在寻找这样的东西:
UPDATE mytable m
SET field = COALESCE(field, o.value)
FROM someothertable o
WHERE m.id = o.id;
正如@Abelisto 在评论中所说,内部查询周围的括号有效