Como se ha comentado en esta respuesta,
SELECT (j->'i')::int FROM (SELECT '{"i":null}'::jsonb) t(j); -- fail
resultados de "ERROR: no se puede elenco jsonb nulo de tipo integer"... Ok, este es el "PostgreSQL manera", pero ¿por qué no hacerlo mejor? Mejor que agregar CASE
cláusulas, que está haciendo el "naturales" de la cosa, que está lanzando un JSON-valor NULL a un SQL escrito valor null. Así, no es un problema de aplicación, pero me parece un error de especificación en PostregSQL: que es?