gpt4 book ai didi

postgresql - STRING_AGG() 在定界符内使用表达式(结果偏移一次迭代)

转载 作者:行者123 更新时间:2023-11-29 13:11:11 27 4
gpt4 key购买 nike

我在使用 STRING_AGG 并使用定界符内的表达式时遇到了一个非常奇怪的行为。结果是偏移的(即下一次迭代显示在分隔符所在的位置)。

我有一个包含社区名称的列,我试图将它们连接成一个字符串,以便稍后在另一个查询中使用,因为它们有很多,我需要动态地执行此操作。我已经将查询简化为最基本的要素,但我仍然得到偏移结果。

示例查询:

    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

我得到的结果:

    Cougar  Mountain / Lakemont as "Northwest Bellevue", 
Northwest Bellevue as "West Bellevue",
West Bellevue as "Bridle Trails"... so on

我意识到生成的查询毫无意义,我去掉了其他元素以排除那里的错误。

非常感谢您的意见,谢谢!

最佳答案

尝试在一次调用 CONCAT 时调用 STRING_AGG:

SELECT
STRING_AGG(CONCAT(neighborho, ' as "', neighborho, '", '), ',')
FROM neighborhood;

来自 Postgres documentation , STRING_AGG 有两个参数,第二个是分隔符。您目前正在传递 as "... 作为定界符,而实际上您似乎只想要逗号。

关于postgresql - STRING_AGG() 在定界符内使用表达式(结果偏移一次迭代),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54490493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com