PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Extraindo nomes de chave com valores verdadeiros do objeto JSONB


jsonb tem um operador de igualdade (=; ao contrário de json ), para que você possa escrever
SELECT key
FROM   jsonb_each('{"aaa": true, "bbb": false}')
WHERE  value = jsonb 'true'

(com jsonb_each_text() você confia na representação de texto de alguns valores JSON).

Você pode até incluir alguns valores adicionais, se quiser:
WHERE  value IN (to_jsonb(TRUE), jsonb '"true"', to_jsonb('truthy'))

IN usa o operador de igualdade sob o capô.