【发布时间】:2022-01-13 20:48:42
【问题描述】:
我以前从未使用过 JSONB 列,所以我正在为一个简单的查询而苦苦挣扎。
我需要从下面的这个 json 中选择所有 value 字段。输出应该是:value1, value2, value3, value4, value5, value6, value7, value8
这就是我所能得到的,但我找不到更深入 json 的方法。
SELECT result -> 'report' ->> 'products' AS values FROM example_table
感谢您的帮助。
CREATE TABLE example_table(
id SERIAL PRIMARY KEY,
result JSONB NOT NULL);
INSERT INTO example_table(result)
VALUES('{
"report": {
"products": [
{
"productName": "Product One",
"types": [
{
"type": "Type One",
"metadata": {
"prices": [
{
"price": {
"value": "value1"
}
},
{
"price": {
"value": "value2"
}
}
]
}
},
{
"type": "Type Two",
"metadata": {
"prices": [
{
"price": {
"value": "value3"
}
},
{
"price": {
"value": "value4"
}
}
]
}
}
]
},
{
"productName": "Product Two",
"types": [
{
"type": "Type One",
"metadata": {
"prices": [
{
"price": {
"value": "value5"
}
},
{
"price": {
"value": "value6"
}
}
]
}
},
{
"type": "Type Two",
"metadata": {
"prices": [
{
"price": {
"value": "value7"
}
},
{
"price": {
"value": "value8"
}
}
]
}
}
]
}
]
}
}');
【问题讨论】:
-
使用
jsonb_array_elements(和->而不是->>),或者试试json路径 -
嗨@Bergi,感谢您的提示。你能给我看一下代码示例吗?提前致谢
标签: postgresql jsonb