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