【发布时间】:2015-11-25 09:19:12
【问题描述】:
我的表格结构如下:
CREATE TABLE artists (artist TEXT UNIQUE, facts JSONB);
INSERT INTO artists (artist, facts)
VALUES ('adele', '[{"type": "full_name", "value": "Adele Laurie"}, {"type": "age", "value": "25"}]');
INSERT INTO artists (artist, facts)
VALUES ('taylor', '[{"type": "age", "value": "25"}, {"type": "last_album", "value": "1989"}]');
事实“类型”的数量是固定的,但并不是每个艺术家都会拥有每个事实。如何选择包含每种事实类型的列和缺失事实名称的空值的结果?
期望的输出:
| artist | full_name | age | last_album |
|--------|---------------|------|------------|
| adele | Adele Laurie | 25 | null |
| taylor | null | 25 | 1989 |
【问题讨论】:
-
表轨道从何而来?
-
哎呀,复制粘贴错误,现已修复
-
第一行有一个定义的对象
{"type": "full_name", "value": "Adele Laurie"},而第二行没有{"age": "25"}是第二个模式,或者是缺少一个类型,比如{"type": "age", "value": "25"} -
好的,明白了!这就是问题...
-
天哪,你又是对的。对不起,错别字。是的,json 在两行中都是相同的结构(两者都有类型和值键)。我修好了。
标签: sql arrays postgresql jsonb