sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur frågar jag efter nollvärden i json-fälttypen postgresql?

du kan använda det faktum att elem->'occupation2' returnerar strängen null av typen json , så din fråga blir:

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}

Om du vill få alla element där värdet är null i JSON eller nyckel existerar inte, du kan bara göra:

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. Android SQLite jokertecken

  2. Kärndumpfil och lägga till felsökningskoder i programmets körbara program för Oracle Apps

  3. Hur utför jag en infogning och returnerar insatt identitet med Dapper?

  4. UPPDATERING med CASE och IN - Oracle