"Niektórzy ludzie, kiedy napotkają problem, myślą: 'Wiem, użyję wyrażeń regularnych'. I teraz mają dwa problemy."
-- Jamie Zawinski

POSTGRESQL – KONWERSJA WIERSZY NA STRING

Czasami się zdarza, że musisz przekształcić podzapytania na ciąg znaków, który jest rozdzielany przecinakami. Na przykład, może trzeba napisać krótki raport zawierający imiona i nazwiska użytkowników, ich identyfikatora logowania i wszystkie role. W tym przypadku, nie mogą być trzy tabele do odniesienia: users, role i user_role_xref. Aby wyświetlić żądane dane dla wszystkich włączonych użytkowników, można użyć następującej kwerendy w PostgreSQL:

SELECT users.user_id,
  users.full_name,
  array_to_string(array(
    SELECT roles.title
    FROM user_role_xref, roles
    WHERE user_role_xref.user_id = users.id
    AND user_role_xref.role_id = roles.id
  ), ', ') AS roles
FROM users
WHERE users.enabled = TRUE;