sql >> Database >  >> RDS >> PostgreSQL

Hoe opvragen voor null-waarden in json-veldtype postgresql?

je kunt het feit gebruiken dat elem->'occupation2' retourneert string null van het type json , dus uw vraag is:

select
    *
from  json_array_elements(
  '[{"name": "Toby", "occupation": "Software Engineer"},
    {"name": "Zaphod", "occupation": "Galactic President"} ,
    {"name2": "Zaphod", "occupation2": null} ]'
) as elem
where (elem->'occupation2')::text = 'null'

{"name2": "Zaphod", "occupation2": null}

Als je alle elementen wilt krijgen waarvan de waarde null is in JSON of de sleutel bestaat niet, je kunt gewoon doen:

select
    *
from  json_array_elements(
  '[{"name": "Toby", "occupation": "Software Engineer"},
    {"name": "Zaphod", "occupation": "Galactic President"} ,
    {"name2": "Zaphod", "occupation2": null} ]'
) as elem
where (elem->>'occupation2') is null

{"name": "Toby", "occupation": "Software Engineer"}
{"name": "Zaphod", "occupation": "Galactic President"}
{"name2": "Zaphod", "occupation2": null}


  1. 4 manieren om te controleren of een tabel bestaat voordat u deze in SQL Server (T-SQL) laat vallen

  2. Hoe iif() werkt in SQLite

  3. Hoe voorloopnullen van datums in Oracle te verwijderen

  4. Fout bij gebruik van een OLAP-verbinding:de MSOLAP-provider is niet geregistreerd op de lokale computer...