在 Db2 中使用 SQL 创建嵌套的 JSON
Create a nested JSON with SQL in Db2
我实际上从 table
中提取了一个 JSON
select json_object ('ITEM_ID' value Trim(PRDC),
'ITEM_DESC' value TRIM(DESC),
) JSONData
from my_file
我得到了这个:
[{"ITEM_ID":"PRODUCT_01","ITEM_ITDESC":"DESC_01"},
{"ITEM_ID":"PRODUCT_02","ITEM_ITDESC":"DESC_02"},
...
]
现在我需要这样的提取...
[{"ITEM_ID":"PRODUCT_01","ITEM_ITDESC":"DESC_01", "ITEM_TIERPRICE": [
{"QTY": 5, "PRICE": 7.0000},
{"QTY": 10, "PRICE": 6.0000}
]},
{"ITEM_ID":"PRODUCT_02","ITEM_ITDESC":"DESC_02", "ITEM_TIERPRICE": [
{"QTY": 5, "PRICE": 6.0000},
{"QTY": 10, "PRICE": 5.0000}
]}
...
]
但是不知道怎么获得。
ITEM_TIERPRICE 就像
SELECT QTY, PRICE FROM PRICE_TABLE WHERE ITEM = MY_ITEM
所以你想要一个包含 JSON 个对象数组的 JSON 对象..
你看过documentation中的例子了吗?
特别是这个
select
json_object(
'department number' value deptno
, 'department name' value deptname
, 'employee list'
value json_arrayagg(
json_object(
'last name' value lastname
, 'employee id' value empno
)
order by lastname
)
)
from dept
left outer join emp
on deptno = workdept
where deptno like 'D%'
group by deptno
,deptname;
注意使用
JSON_OBJECT(JSON_ARRAY(JSON_OBJECT()))
我实际上从 table
中提取了一个 JSONselect json_object ('ITEM_ID' value Trim(PRDC),
'ITEM_DESC' value TRIM(DESC),
) JSONData
from my_file
我得到了这个:
[{"ITEM_ID":"PRODUCT_01","ITEM_ITDESC":"DESC_01"},
{"ITEM_ID":"PRODUCT_02","ITEM_ITDESC":"DESC_02"},
...
]
现在我需要这样的提取...
[{"ITEM_ID":"PRODUCT_01","ITEM_ITDESC":"DESC_01", "ITEM_TIERPRICE": [
{"QTY": 5, "PRICE": 7.0000},
{"QTY": 10, "PRICE": 6.0000}
]},
{"ITEM_ID":"PRODUCT_02","ITEM_ITDESC":"DESC_02", "ITEM_TIERPRICE": [
{"QTY": 5, "PRICE": 6.0000},
{"QTY": 10, "PRICE": 5.0000}
]}
...
]
但是不知道怎么获得。 ITEM_TIERPRICE 就像
SELECT QTY, PRICE FROM PRICE_TABLE WHERE ITEM = MY_ITEM
所以你想要一个包含 JSON 个对象数组的 JSON 对象..
你看过documentation中的例子了吗?
特别是这个
select
json_object(
'department number' value deptno
, 'department name' value deptname
, 'employee list'
value json_arrayagg(
json_object(
'last name' value lastname
, 'employee id' value empno
)
order by lastname
)
)
from dept
left outer join emp
on deptno = workdept
where deptno like 'D%'
group by deptno
,deptname;
注意使用
JSON_OBJECT(JSON_ARRAY(JSON_OBJECT()))