sql >> Base de Datos >  >> RDS >> PostgreSQL

Extraer nombres clave con valores verdaderos del objeto JSONB

jsonb tiene un operador de igualdad (=; a diferencia de json ), por lo que podría escribir

SELECT key
FROM   jsonb_each('{"aaa": true, "bbb": false}')
WHERE  value = jsonb 'true'

(con jsonb_each_text() confía en la representación de texto de algunos valores JSON).

Incluso puede incluir algunos valores adicionales, si lo desea:

WHERE  value IN (to_jsonb(TRUE), jsonb '"true"', to_jsonb('truthy'))

IN usa el operador de igualdad debajo del capó.