sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan forespørger man efter null-værdier i json-felttypen postgresql?

du kan bruge det faktum, at elem->'occupation2' returnerer streng null af typen json , så din forespørgsel vil være:

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}

Hvis du vil have alle elementer, hvor værdien er null i JSON eller nøglen ikke eksisterer, kan du bare gøre:

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. MySQL i 2018:Hvad er i 8.0 og andre observationer

  2. Hvad er forskellen mellem pls_integer og binary_integer?

  3. Sammenkæd og grupper flere rækker i Oracle

  4. Find ud af, hvorfor en e-mail ikke kunne sendes i SQL Server (T-SQL)