sql >> Database >  >> RDS >> PostgreSQL

Postgres retourneert [null] in plaats van [] voor array_agg van join-tabel

Een andere optie kan zijn array_remove(..., NULL) (geïntroduceerd in 9.3 ) als tags.tag is NOT NULL (anders wil je misschien NULL behouden waarden in de array, maar in dat geval kunt u geen onderscheid maken tussen een enkele bestaande NULL tag en een NULL tag vanwege de LEFT JOIN ):

SELECT objects.*,
     array_remove(array_agg(tags.tag), NULL) AS tags,
FROM objects
LEFT JOIN taggings ON objects.id = taggings.object_id
LEFT JOIN tags ON tags.id = taggings.tag_id

Als er geen tags worden gevonden, wordt een lege array geretourneerd.



  1. Onverwachte SQL-query's naar Postgres-database op Rails/Heroku

  2. Hoe kan ik verschil z/w TIMESTAMP formaat waarden in Oracle vinden?

  3. Hoe gebruik je opsommingen in Oracle?

  4. mysql proxy sokken