将jsonb列与Postgres中的顶级列连接

时间:2019-02-21 13:59:54

标签: sql postgresql

如何将jsonb列值与ID等顶级值结合在一起 例如

posix

如果我运行以下查询:CREATE TABLE things ( id SERIAL PRIMARY, data jsonb ); ,我会得到这个

SELECT * FROM things;

我该如何加入以获得这种格式的内容呢?

id | data
-----------
1  | {"key": "value}

我可以做SELECT AS,但是,我必须手动选择所有键,如果其中一个值是null,它仍然会返回null值

id | key
-----------
1  | value

如何在忽略空值的情况下选择如上所述的所有jsonb数据?

1 个答案:

答案 0 :(得分:1)

使用->>运算符

select id, data->>'key' as key from things;

修改

  

问题是我必须选择每个键,如果键是   将其仍然显示为空,我不能只选择...

使用where子句

中的另一个条件对其进行过滤
select id, data->>'key' as key from things where nullif(data->>'key','')
is not null;

Demo