我有一个表'Documents',其中有一个'Tags'列,'jsonb'数据类型.标签列中的示例数据
[{"Tag": "Social Media"}, {"Tag": "Adobe Creative"}]
[{"Tag": "Interactive"}]
[{"Tag": "Web 2.0"}, {"Tag": "Adobe Creative"},{"Tag": "Suite"}]
Run Code Online (Sandbox Code Playgroud)
我需要得到"标签"的不同值
Social Media
Adobe Creative
Interactive
Web 2.0
Suite
Run Code Online (Sandbox Code Playgroud)
我是PostgreSQL的新手.
Moh*_*ood 10
您还可以使用以下代码片段。
SELECT DISTINCT
Tags::json->'Tag'
FROM Documents;
Run Code Online (Sandbox Code Playgroud)
SELECT DISTINCT
Tags->>'Tag'
FROM Documents;
Run Code Online (Sandbox Code Playgroud)
最短的版本是:
SELECT DISTINCT value->'Tag' AS tag
FROM Documents, jsonb_array_elements(Documents.Tags);
Run Code Online (Sandbox Code Playgroud)
该jsonb_array_elements()函数将JSONB数组取消嵌套为一组具有单个列的行,这些列称为“值”。它在Documents表上使用隐式“横向连接” 。
这为您提供了不同的标签作为jsonb值。如果希望它们作为text值,请使用->>运算符代替->。
| 归档时间: |
|
| 查看次数: |
6045 次 |
| 最近记录: |