Wenn ich array_agg
Namen sammle, werden meine Namen durch Kommas getrennt. Wenn jedoch ein null
Wert vorhanden ist , wird diese Null auch als Name im Aggregat verwendet. Zum Beispiel :
SELECT g.id,
array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users,
array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users
FROM groups g
GROUP BY g.id;
es kehrt ,Larry,Phil
statt nur zurück Larry,Phil
(in meinem 9.1.2 zeigt es NULL,Larry,Phil
). wie in dieser Geige
Wenn ich stattdessen verwende string_agg()
, werden mir nur die Namen (ohne leere Kommas oder Nullen) wie hier angezeigt
Das Problem ist, dass ich Postgres 8.4
auf dem Server installiert habe und string_agg()
dort nicht funktioniert. Gibt es eine Möglichkeit, array_agg ähnlich wie string_agg () arbeiten zu lassen?