我正在成为一个非常奇怪的行为使用STRING_AGG和使用该分隔符内的表达。结果偏移(即下一次迭代示出了其中定界符会去)。
我有一列包含邻居名称,并且我试图将它们连接成一个字符串以供以后在另一个查询中使用,因为它们很多,因此我需要动态地执行此操作。我已将查询简化为基本要点,但仍得到偏移结果。
示例查询:
...
while(is_opening_hours()){
const maxstop = await utils.max_entries_reached();
...
预期结果:
select string_agg(neighborho, concat(' as "', neighborho, '", ')) from neighborhoods;
我得到的结果:
Cougar Mountain / Lakemont as "Cougar Mountain / Lakemont",
Northwest Bellevue as "Northwest Bellevue",
West Bellevue as "West Bellevue"... so on
我意识到结果查询的意义是零,我排除了其他元素以排除错误。
我很欣赏的投入,谢谢!
答案 0 :(得分:1)
尝试一次致电STRING_AGG
来呼叫CONCAT
:
SELECT
STRING_AGG(CONCAT(neighborho, ' as "', neighborho, '", '), ',')
FROM neighborhood;
在Postgres documentation中,STRING_AGG
使用两个参数,第二个是定界符。您实际上正在传递as "...
作为分隔符,而实际上您似乎只是想用逗号。