首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PostgreSQL中选择jsonb列的值

在PostgreSQL中选择jsonb列的值
EN

Stack Overflow用户
提问于 2016-10-19 13:05:49
回答 2查看 19.7K关注 0票数 11

我有一个表'Documents‘,它有一个数据类型为'jsonb’的列'Tags‘。标记列中的示例数据

代码语言:javascript
运行
复制
 [{"Tag": "Social Media"}, {"Tag": "Adobe Creative"}]
 [{"Tag": "Interactive"}]
 [{"Tag": "Web 2.0"}, {"Tag": "Adobe Creative"},{"Tag": "Suite"}]

我需要获取"Tag“的不同值,比如

代码语言:javascript
运行
复制
 Social Media 
 Adobe Creative
 Interactive
 Web 2.0
 Suite

我是PostgreSQL的新手。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-19 13:59:05

最短的版本是:

代码语言:javascript
运行
复制
SELECT DISTINCT value->'Tag' AS tag
FROM Documents, jsonb_array_elements(Documents.Tags);

jsonb_array_elements() function将JSONB数组解嵌到一组行中,这些行只有一个名为"value“的列。它在Documents表上使用隐式的“横向连接”。

这为您提供了不同的标记作为jsonb值。如果希望它们作为text值,请使用->>运算符而不是->

票数 18
EN

Stack Overflow用户

发布于 2020-12-29 01:27:48

您还可以使用以下代码片段。

代码语言:javascript
运行
复制
SELECT 
  id, 
  data::json->'name' as name
FROM books;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40122565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档