1

Postgresクエリで行を結合し、2つの列(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

また、1つの列が空の場合はどうなりますか?

4

2 に答える 2

1

合体を使用して、NULL値を連結可能なものに変換します。

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

また、string_agg関数を使用すると、文字列を配列に収集せずに直接連結できます。

于 2012-09-13T09:08:38.117 に答える
1

9.1を使用している場合は、array_to_stringの3番目のパラメーターを使用できます-null文字列

array_to_string(array_agg(name), ',', '<missing>') from bbb
于 2012-09-13T10:27:33.963 に答える