0
EXECUTE format(
'SELECT MAX(sum)
FROM table 1
WHERE %s = %s') INTO max_value USING id_column, id_value;
Getting error: ERROR: operator does not exist: character varying = integer.如何动态地选择进入查询
此外,当我试图运行下面的代码:
update table1 set column2 = max_value + sum;
我得到另一个错误:
"ERROR: column "max_value" does not exist"
请给我们看你**完成**功能。对于问题的第一部分:您应该使用'%I'作为列名的占位符和值的'%L'。 –
一眼望去 - 您需要在格式()本身之外添加格式()参数值(请参阅https://www.postgresql.org/docs/current/static/functions-string.html#FUNCTIONS-STRING-FORMAT) 。其次,使用变量'max_value'进行更新可能会解决第一个问题 - 该变量永远不会从动态SELECT中分配一个值。 –