在PostgreSQL中选择jsonb列的值

时间:2016-10-19 05:05:49

标签: postgresql jsonb

我有一张桌子' Documents'其中有一列'标签'与' jsonb'数据类型。 标签列

中的示例数据
 Social Media 
 Adobe Creative
 Interactive
 Web 2.0
 Suite

我需要获得" Tag"的明确值。像

{{1}}

我是PostgreSQL的新手。

2 个答案:

答案 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;