Tidak ada operator persamaan (atau ketidaksetaraan) untuk tipe data json secara keseluruhan, karena kesetaraan sulit untuk dibangun. Pertimbangkan jsonb di Postgres 9.4 atau lebih baru, jika memungkinkan. Detail lebih lanjut dalam jawaban terkait ini di dba.SE (bab terakhir):
- Bagaimana cara menghapus elemen yang diketahui dari larik JSON[] di PostgreSQL?
SELECT DISTINCT json_column ... atau ... GROUP BY json_column gagal karena alasan yang sama (tidak ada operator kesetaraan).
Mentransmisikan kedua sisi ekspresi ke text memungkinkan = atau <> operator, tapi itu biasanya tidak dapat diandalkan karena ada banyak kemungkinan representasi teks untuk sama nilai JSON. Di Postgres 9.4 atau lebih baru, transmisikan ke jsonb sebagai gantinya. (Atau gunakan jsonb untuk memulai.)
Namun , untuk kasus khusus ini (objek kosong ) berfungsi dengan baik:
select * from test where foo::text <> '{}'::text;