【发布时间】:2021-12-11 14:12:51
【问题描述】:
表有列,名为“config”,内容如下:
{
"A":{
"B":[
{"name":"someName","version":"someVersion"},
{"name":"someName","version":"someVersion"}
]
}
}
任务是选择所有名称和版本值。输出预期选择 2 列:名称和值。
我成功选择了B的内容:
select config::json -> 'A' -> 'B' as B
from my_table;
但是当我尝试做类似的事情时:
select config::json -> 'A' -> 'B' ->> 'name' as name,
config::json -> 'A' -> 'B' ->> 'version' as version
from my_table;
我收到带有空值列的选择
【问题讨论】:
-
为什么要使用
::json演员表?如果该列存储 JSON 数据,则应将其定义为jsonb或至少json
标签: sql json postgresql