我正在尝试组合行并在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
如果一列是空的吗?
感谢您的帮助,亲切的问候
贝
答案 0 :(得分:1)
使用coalesce将NULL值转换为可以连接的值:
array_to_string(array_agg(name|| ', ' ||coalesce(vorname, '<missing>')), '\n')
此外,您可以直接连接字符串,而无需使用string_agg函数将它们收集到数组中。
答案 1 :(得分:1)
如果你有9.1,那么你可以使用array_to_string的第三个参数 - 空字符串
array_to_string(array_agg(name), ',', '<missing>') from bbb