我有一个表'Documents',其中有一列'Tags'与'jsonb'数据类型。
[{"Tag": "Social Media"}, {"Tag": "Adobe Creative"}]
[{"Tag": "Interactive"}]
[{"Tag": "Web 2.0"}, {"Tag": "Adobe Creative"},{"Tag": "Suite"}]
我需要得到“Tag”的不同值,比如
Social Media
Adobe Creative
Interactive
Web 2.0
Suite
我是PostgreSQL的新手。
3条答案
按热度按时间hi3rlvi21#
最短的版本是:
jsonb_array_elements()
function将JSONB数组解嵌套为一组行,其中只有一列称为“value”。它在Documents
表上使用了隐式“横向连接”。这将给你不同的标签作为
jsonb
值。如果你想让它们作为text
值,使用->>
运算符而不是->
。acruukt92#
你也可以使用下面的代码片段。
olqngx593#
自Postgres 9.6+以来