PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để truy vấn giá trị null trong trường json loại postgresql?

bạn có thể sử dụng thực tế là elem->'occupation2' trả về chuỗi null thuộc loại json , vì vậy truy vấn của bạn sẽ là:

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}

Nếu bạn muốn lấy tất cả các phần tử có giá trị là null trong JSON hoặc khóa không tồn tại, bạn chỉ có thể làm:

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. PostgreSQL - Cách loại bỏ các giá trị lặp lại

  2. PostgreSql 'PDOException' với thông báo 'không thể tìm thấy trình điều khiển'

  3. Cách justify_interval () hoạt động trong PostgreSQL

  4. Cách xác định các vấn đề về hiệu suất PostgreSQL với các truy vấn chậm

  5. Oracle sang PostgreSQL - Con trỏ và Biểu thức Bảng Thông dụng