sql - 将 jsonb 列与 Postgres 中的顶级列连接
问题描述
例如,如何将 jsonb 列值与 ID 等顶级值连接起来
CREATE TABLE things (
id SERIAL PRIMARY,
data jsonb
);
如果我运行以下查询:SELECT * FROM things;
,我会得到这个
id | data
-----------
1 | {"key": "value}
我怎样才能加入得到这种格式的东西:
id | key
-----------
1 | value
我可以做 SELECT AS 但是,然后我必须手动选择所有键,如果其中一个值为空,它仍然返回为空值
id | key
-----------
1 | null
如何在忽略空值的同时选择上面描述的所有 jsonb 数据?
解决方案
使用->>
运算符
select id, data->>'key' as key from things;
编辑
问题是我必须选择每个键,如果键为空,它仍然显示,我不能只选择...
where
使用子句中的另一个条件过滤它
select id, data->>'key' as key from things where nullif(data->>'key','')
is not null;
推荐阅读
- c++ - 在编译时区分 char 和 wchar_t
- arrays - 如何根据条件计算谷歌表格上的加权平均值?
- javascript - Vue.js - 使用 :value 时选择元素不更新,v-model 很好
- mapstruct - Mapstruct - 映射器对象需要对象字段的值映射
- c# - 如何在 C# 中使用 firesharp nuget 包从 firebase 读取数据?
- json - 在 groovy 中解析 Json 时遇到困难
- c++ - C ++访问没有迭代器的映射中的键值对
- math - 如何计算表面法线和表面积
- python-3.x - 如何在python3中计算平均日期时间时间戳
- shiny - 根据输入更改托盘值(闪亮和传单)