PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да потърся нулеви стойности в json поле тип postgresql?

можете да използвате факта, че elem->'occupation2' връща низ null от тип json , така че вашата заявка ще бъде:

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}

Ако искате да получите всички елементи, при които стойността е null в JSON или ключът не съществува, можете просто да направите:

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. Как да преместя съществуващото си приложение за релси в heroku? (sqlite към postgres)

  2. Актуализирайте няколко реда в една и съща заявка с помощта на PostgreSQL

  3. Незадължителен аргумент във функцията PL/pgSQL

  4. PostgreSql „PDOException“ със съобщение „не можа да намери драйвер“

  5. Грешка в PostgreSQL „Не можа да се свърже със сървъра:Няма такъв файл или директория“