PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak wykonać zapytanie o wartości null w polu typu json postgresql?

możesz wykorzystać fakt, że elem->'occupation2' zwraca ciąg null typu json , więc Twoje zapytanie będzie wyglądało następująco:

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}

Jeśli chcesz uzyskać wszystkie elementy, których wartość to null w JSON lub klucz nie istnieje, możesz po prostu zrobić:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oblicz punkt 50 mil (północ, 45% NE, 45% SW)

  2. SQL, gdzie połączony zbiór musi zawierać wszystkie wartości, ale może zawierać więcej

  3. Jak replikować tylko WSTAWKI, a nie DELETE/AKTUALIZACJE na węźle Slony Slave?

  4. Prosta zaszyfrowana biblioteka arytmetyczna (SEAL) i pieczęć::Zmienna zaszyfrowanego tekstu

  5. percentyle z danych histogramowych