作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表“Documents”,其中有一列“Tags”,数据类型为“jsonb”。标签列中的样本数据
[{"Tag": "Social Media"}, {"Tag": "Adobe Creative"}]
[{"Tag": "Interactive"}]
[{"Tag": "Web 2.0"}, {"Tag": "Adobe Creative"},{"Tag": "Suite"}]
我需要获取“标签”的不同值,例如
Social Media
Adobe Creative
Interactive
Web 2.0
Suite
我是 PostgreSQL 的新手。
最佳答案
最短的版本是:
SELECT DISTINCT value->'Tag' AS tag
FROM Documents, jsonb_array_elements(Documents.Tags);
jsonb_array_elements()
function将 JSONB 数组取消嵌套到一组行中,其中只有一个列称为“值”。它在 Documents
上使用隐式“横向连接”表。
这为您提供了不同的标签 jsonb
值。如果你想要它们作为 text
值,使用 ->>
运算符而不是 ->
.
关于postgresql - 在 PostgreSQL 中选择 jsonb 列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40122565/
我是一名优秀的程序员,十分优秀!