从 Postgres JSONB 字段中选择缺失值

Selecting absent value from Postgres JSONB field

我在 PostgreSQL 10.5[=18] 上有一个 table entries,其字段 details 类型为 jsonb,默认值为 '{}'::jsonb =]

当我运行

SELECT details->foo FROM entries

我得到一个

ERROR: column "foo" does not exist.

https://www.postgresql.org/docs/10/functions-json.html 我知道当键不存在时我应该得到一个 NULL 值是 JSON。我理解错了吗?如果是这样,我如何提取具有默认值的字段?

您需要提供 JSON 键作为字符串常量:

SELECT details -> 'foo' 
FROM entries;