sql >> Databáze >  >> RDS >> PostgreSQL

Jak se dotazovat na hodnoty null v poli json typu postgresql?

můžete použít fakt, že elem->'occupation2' vrátí řetězec null typu json , takže váš dotaz bude:

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}

Pokud chcete získat všechny prvky, kde hodnota je null v JSON nebo klíč neexistuje, stačí udělat:

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. Vypočítat max. součtu anotovaného pole nad seskupeným dotazem v Django ORM?

  2. Odstraňte duplikát z tabulky

  3. Přidání více parametrizovaných proměnných do databáze v c#

  4. Jak změnit hodnotu automatického přírůstku databáze MySQL / MariaDB