在SQL Server中将json数组读入行

在SQL Server中将json数组读入行,json,sql-server,json-query,Json,Sql Server,Json Query,给定下面的示例json数据,我如何编写一个查询来一步提取所有数组数据?我的目标是为ActionRecs数组4中的每个项目设置一行。我的实际json更复杂,但我认为这是我的目标的一个很好的例子 declare @json2 nvarchar(max) set @json2 = '{ "RequestId": "1", "ActionRecs": [ { "Type": "Submit", "Employee": "Jo

给定下面的示例json数据,我如何编写一个查询来一步提取所有数组数据?我的目标是为ActionRecs数组4中的每个项目设置一行。我的实际json更复杂,但我认为这是我的目标的一个很好的例子

declare @json2 nvarchar(max)
set @json2 = '{
    "RequestId": "1",
    "ActionRecs": [
        {
            "Type": "Submit",
            "Employee": "Joe"
        },
        {
            "Type": "Review",
            "Employee": "Betty"
        },
        {
            "Type": "Approve",
            "Employee": "Sam"
        },
        {
            "Type": "Approve",
            "Employee": "Bill"
        }
    ]
}'

SELECT x.*
, JSON_QUERY(@json2, '$.ActionRecs') as ActionArray
from OPENJSON(@json2) 
with (Id varchar(5) '$.RequestId') as x

一种可能的方法是使用OPENJSONand交叉应用:

输出:

Id  Type    Employee
1   Submit  Joe
1   Review  Betty
1   Approve Sam
1   Approve Bill

一种可能的方法是使用OPENJSONand交叉应用:

输出:

Id  Type    Employee
1   Submit  Joe
1   Review  Betty
1   Approve Sam
1   Approve Bill