我试图在Postgres查询中合并行并连接两列(name,vorname)。
这样很好:

SELECT nummer,
       array_to_string(array_agg(name|| ', ' ||vorname), '\n') as name
FROM  (
   SELECT DISTINCT
          nummer, name, vorname
   FROM   myTable
   ) AS m
GROUP  BY nummer
ORDER  BY nummer;

不幸的是,如果“vorname”是空的,尽管name有一个值,但我没有得到任何结果。
有没有可能让这个工作:
   array_to_string(array_agg(name|| ', ' ||vorname), '\n') as name

如果一列是空的呢?
谢谢你的帮助,代我问候
托尼

最佳答案

使用coalesce将空值转换为可以连接的值:

array_to_string(array_agg(name|| ', ' ||coalesce(vorname, '<missing>')), '\n')

此外,还可以使用string-agg函数直接连接字符串,而无需将它们收集到数组中。

08-07 09:46