我有一张桌子' Documents'其中有一列'标签'与' jsonb'数据类型。 标签列
中的示例数据 Social Media
Adobe Creative
Interactive
Web 2.0
Suite
我需要获得" Tag"的明确值。像
{{1}}
我是PostgreSQL的新手。
答案 0 :(得分:5)
最短的版本是:
SELECT DISTINCT value->'Tag' AS tag
FROM Documents, jsonb_array_elements(Documents.Tags);
jsonb_array_elements()
function将JSONB数组排除在一组行中,其中一列名为“value”。它在Documents
表上使用隐式“横向连接”。
这为您提供了jsonb
值的不同标记。如果您希望它们为text
值,请使用->>
运算符代替->
。
答案 1 :(得分:0)
您也可以使用以下代码段。
SELECT
id,
data::json->'name' as name
FROM books;