No hay no hay operador de igualdad (o desigualdad) para el tipo de datos json
en su conjunto, porque la igualdad es difícil de establecer. Considere jsonb
en Postgres 9.4 o posterior, donde esto sea posible. Más detalles en esta respuesta relacionada en dba.SE (último capítulo):
- ¿Cómo eliminar elementos conocidos de una matriz JSON[] en PostgreSQL?
SELECT DISTINCT json_column ...
o ... GROUP BY json_column
falla por la misma razón (sin operador de igualdad).
Convertir ambos lados de la expresión en text
permite =
o <>
operadores, pero eso normalmente no es confiable ya que hay muchas representaciones de texto posibles para el mismo Valor JSON. En Postgres 9.4 o posterior, envíe a jsonb
en cambio. (O use jsonb
para empezar.)
Sin embargo , para este caso en particular (objeto vacío ) funciona bien:
select * from test where foo::text <> '{}'::text;