Если я использую array_agg
для сбора имен, я получаю свои имена через запятую, но в случае, если есть значение null
, этот нуль также принимается за имя в агрегате. Например:
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;
он возвращает ,Larry,Phil
вместо Larry,Phil
(в моем 9.1.2 он показывает NULL,Larry,Phil
). как в этот скрипт
Вместо этого, если я использую string_agg()
, он показывает мне только имена (без пустых запятых или нулей), например здесь
Проблема в том, что на сервере установлена Postgres 8.4
, а string_agg()
там не работает. Есть ли способ заставить array_agg работать подобно string_agg()?