我正在尝试设置OPENJSON函数的嵌套数组路径,但无法成功。我尝试了不同的变体和在线资源,仍然无法解决这个问题。
有任何想法吗?
编辑:
明确一下,我知道如何使用CROSSAPPLY和其他方法来做到这一点。我的问题是关于如何在可能的情况下使用OPENJSON函数的路径参数来完成此操作。
以下是我的代码:
DECLARE @json NVARCHAR(MAX);
SET @json = '
{
"orders": [
{
"id":"1",
"date":"7/4/2020",
"orderlines": [
{"id": "1", "amount": 100},
{"id": "2", "amount": 200}
]
},
{
"id":"2",
"date":"7/4/2020",
"orderlines": [
{"id": "3", "amount": 300},
{"id": "4", "amount": 400}
]
}
]
}
'
-- None of these return results. How do I specify the path to the "orderlines" array?
SELECT * FROM OPENJSON(@json,'$.orderlines');
SELECT * FROM OPENJSON(@json,'$.orderlines[1]');
SELECT * FROM OPENJSON(@json,'$.orders.orderlines');
SELECT * FROM OPENJSON(@json,'$.orders.orderlines[1]');
-- This works:
SELECT * FROM OPENJSON(@json,'$.orders');