获取 JSON 数组元素作为记录



我正在尝试从PostgreSQL表中的简单JSON数组中提取元素,例如:

id(int)  vtags(jsonb)
-------- -----------------------
1        {"tags": ["a","b","c"]}
2        {"tags": ["x","y"]}

我想设计一个SELECT语句来产生如下输出:

id  tags
--- -----------------------
1   a
1   b
1   c
2   x 
2   y

使用jsonb_array_elements()取消嵌套数组的元素:

select t.id, 
jt.tag
from the_table t
cross join jsonb_array_elements_text(jt.vtags -> 'tags') as jt(tag)
order by t.id;

最新更新