我有一个PostgreSQL 9.4.5数据库。有一个名为itemtable
的JSONB列的表data
,其中包含一组信息(为简洁而剥离了大量内容):
{ "items": [
{ "id": 158597 },
{ "id": 156300 },
(...)
] }
现在,我想获得这些项目集中所有id
的列表 - 非正式地可以说SELECT id FROM items FROM data FROM itemtable
。我只是设法使用子查询来做到这一点,这显然不是最理想的:
SELECT idlist->>'id' FROM (
SELECT json_array_elements(data::json->'items') AS idlist FROM itemtable
) AS necessary_subquery_name
我怎样才能减少错综复杂呢?
请注意,我需要在SquirrelSQL中运行它,因此需要::json
强制转换。
答案 0 :(得分:1)
SELECT json_array_elements(data::json->'items')->>'id' FROM itemtable