我目前正在研究几年前在 8.4 版本下开发的 postgres 代码,并迁移到 9.4 postgres 版本,我遇到了这行代码:
string_agg(''#attribute_''||attribute_id::varchar||'':''||attribute) as attr
在这种情况下:
_myquery='INSERT INTO mytable
SELECT ID,string_agg(''#attribute_''||attribute_id::varchar||'':''||attribute,''|'') as attr
FROM my_attribute_table
GROUP BY ID;';
在迁移到 Postgres 9.4 的过程中,我得到了这个:
错误:函数 string_agg(text) 不存在 SQL 状态:42883 提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。
在较新版本中处理 string_agg 的正确方法是什么?我知道我需要显式转换或添加分隔符,但听起来当前代码今天没有添加任何分隔符,是吗?
今天,我们在 attr 上得到的结果是这些,例如:
"#attribute_78:None#attribute_25:715#attribute_48:Consumer#attribute_538:1yr Ret Base#attribute_1178:1yr Ret Base"