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

Cách sử dụng postgresql bất kỳ với dữ liệu jsonb

employees->'employment'->'benefits' là một mảng json, vì vậy bạn nên hủy đặt nó để sử dụng các phần tử của nó trong any nào So sánh. Sử dụng hàm jsonb_array_elements_text() trong tham gia bên :

select *
from 
    employees, 
    jsonb_array_elements_text(employees->'employment'->'benefits') benefits(benefit)
where
    benefit = any('{Insurance A, Insurance B}'::text[]);

Cú pháp

from 
    employees, 
    jsonb_array_elements_text(employees->'employment'->'benefits')

tương đương với

from 
    employees, 
    lateral jsonb_array_elements_text(employees->'employment'->'benefits')

Từ lateral có thể được bỏ qua. Đối với tài liệu :

Xem thêm: Sự khác biệt giữa LATERAL và truy vấn con trong PostgreSQL là gì?

Cú pháp

from jsonb_array_elements_text(employees->'employment'->'benefits') benefits(benefit)

là một dạng bí danh, theo tài liệu



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thực hiện phần trăm / tổng số trong SQL?

  2. LỖI PostgreSQL:hủy tuyên bố do xung đột với khôi phục

  3. Mẹo &Thủ thuật để Điều hướng Cộng đồng PostgreSQL

  4. Chức năng cửa sổ PostgreSQL:phân vùng theo so sánh

  5. Không thể kết nối với máy chủ postgres trong một docker từ một ứng dụng dày đặc