sử dụng dấu ngoặc nhọn () . Có vẻ như trình biên dịch cố gắng xem nó giống như details->('email' IS NOT NULL) . Vì vậy, bạn có thể sửa nó như thế này:
select *
from users
where (details->'email') is not null
sql fiddle demo
trên thực tế, để lấy các bản ghi trong đó chi tiết ["email"] trống hoặc khóa email không tồn tại , bạn có thể sử dụng truy vấn này:
select *
from users
where (details->>'email') is null
như được mô tả trong câu trả lời này.