等式(または不等式)演算子はありません データ型json
全体として、平等を確立するのは難しいからです。 jsonb
を検討してください これが可能な場合、Postgres9.4以降で。 dba.SE(最後の章)に関するこの関連する回答の詳細:
- PostgreSQLのJSON[]配列から既知の要素を削除するにはどうすればよいですか?
SELECT DISTINCT json_column ...
または... GROUP BY json_column
同じ理由で失敗します(等式演算子はありません)。
式の両側をtext
にキャストする =
を許可します または<>
演算子ですが、同じには多くの可能なテキスト表現があるため、通常は信頼できません。 JSON値。 Postgres 9.4以降では、jsonb
にキャストします 代わりは。 (またはjsonb
を使用します そもそも。)
ただし 、この特定のケースの場合 (空のオブジェクト )問題なく動作します:
select * from test where foo::text <> '{}'::text;