sql >> Database >  >> RDS >> PostgreSQL

Waarom kan NULL niet worden geconverteerd naar de null van JSON in postgreSQL?

to_json is gemarkeerd als STRICT functie, het is gemeen - NULL retourneren wanneer een parameter NULL is. Ik weet niet zeker of het de juiste implementatie is, misschien is het een PostgreSQL-bug.

Update:na discussie over de mailinglijst van Postgres is dit niet de bug, maar een functie - de situatie is niet eenvoudig, dus beide talen ondersteunen NULL, maar het gedrag van NULL verschilt een beetje van deze talen. Het is moeilijk om te beslissen of SQL NULL onmiddellijk moet worden getransformeerd naar JSON NULL en een SQL-gedrag onmiddellijk verloren gaat. Als je ander gedrag nodig hebt, kun je een SQL-functie gebruiken:

CREATE OR REPLACE FUNCTION to_json2(anyelement)
RETURNS json AS $$
SELECT COALESCE(to_json($1), json 'null')
$$ LANGUAGE sql;


  1. HighCharts en PHP json_encode. Gegevens uit MySQL. Geen gegevens op kaart

  2. Kun je deelnemen aan een subquery met Doctrine 2 DQL?

  3. Hoe draaien? Hoe converteer je meerdere rijen naar één rij met meerdere kolommen?

  4. MySQL-query met meerdere tabellen die te veel resultaten oplevert