【发布时间】:2016-10-06 08:47:00
【问题描述】:
EXECUTE format(
'SELECT MAX(sum)
FROM table 1
WHERE %s = %s') INTO max_value USING id_column, id_value;
得到错误:错误:运算符不存在:字符变化= 整数。
另外,当我尝试运行以下代码时:
update table1 set column2 = max_value + sum;
我收到另一个错误:
“错误:列“最大值”不存在”
【问题讨论】:
-
请向我们展示您的完整功能。对于问题的第一部分:您应该使用
%I作为列名的占位符,并使用%L作为值。 -
一目了然——您需要在 format() 内部而不是外部添加 format() 参数值(请参阅postgresql.org/docs/current/static/…)。其次,您使用变量
max_value的更新可能正在处理第一个问题——这个变量永远不会从动态 SELECT 中分配值。
标签: sql postgresql postgresql-9.4