Der er ingen operator for ligestilling (eller ulighed) for datatypen json som helhed, fordi ligestilling er svær at etablere. Overvej jsonb i Postgres 9.4 eller nyere, hvor dette er muligt. Flere detaljer i dette relaterede svar på dba.SE (sidste kapitel):
- Hvordan fjerner man kendte elementer fra et JSON[]-array i PostgreSQL?
SELECT DISTINCT json_column ... eller ... GROUP BY json_column mislykkes af samme grund (ingen ligestillingsoperatør).
Caster begge sider af udtrykket til tekst tillader = eller <> operatorer, men det er normalt ikke pålideligt, da der er mange mulige tekstrepræsentationer for den samme JSON værdi. I Postgres 9.4 eller nyere, cast til jsonb i stedet. (Eller brug jsonb til at begynde med.)
Men , for dette særlige tilfælde (tomt objekt ) det fungerer fint:
select * from test where foo::text <> '{}'::text;