如何用SQL将JSON数组转为表格?嵌套数组能否输出为表格并提取ID?
解决嵌套JSON数组转表格并提取line_item id的问题
你的原SQL代码存在路径错误,因为orders是数组类型,无法直接通过$.orders.line_items访问子数组。需要先遍历orders数组,再逐个展开每个订单下的line_items数组,才能正确提取每个line_item的id。
修正后的SQL代码如下:
DECLARE @json NVARCHAR(4000) = N' { "orders":[{ "id":123, "line_items":[{ "id":1 },{ "id":2 }] }] }'; SELECT li.id AS [id] FROM OPENJSON (@json, '$.orders') WITH ( line_items NVARCHAR(MAX) AS JSON -- 将每个订单的line_items以JSON格式提取 ) AS o CROSS APPLY OPENJSON(o.line_items) WITH ( id BIGINT '$.id' -- 提取line_item的id ) AS li;
执行后会得到你期望的输出:
| id |
|---|
| 1 |
| 2 |
内容的提问来源于stack exchange,提问作者DreamTeK
相关产品推荐
相关产品推荐

