0

我有一个格式如下的 SQL Server 表:

ID               int
JobParameters    nvarchar(max)

其中 JobParameters 列包含例如:

{
    "Parameters": [
        {
            "SID": 35,
            "RPYID": 10
        }, {
            "SID": 36,
            "RPYID": 10
        }, {
            "SID": 39,
            "RPYID": 10
        }, {
            "SID": 46,
            "RPYID": 10
        }, {
            "SID": 58,
            "RPYID": 10
        }, {
            "SID": 65,
            "RPYID": 10
        }, {
            "SID": 71,
            "RPYID": 10
        }, {
            "SID": 72,
            "RPYID": 10
        }, {
            "SID": 73,
            "RPYID": 10
        }, {
            "SID": 74,
            "RPYID": 10
        }, {
            "SID": 78,
            "RPYID": 10
        }, {
            "SID": 80,
            "RPYID": 10
        }, {
            "SID": 81,
            "RPYID": 10
        }, {
            "SID": 82,
            "RPYID": 10
        }, {
            "SID": 88,
            "RPYID": 10
        }, {
            "SID": 90,
            "RPYID": 10
        }, {
            "SID": 96,
            "RPYID": 10
        }, {
            "SID": 407,
            "RPYID": 10
        }, {
            "SID": 408,
            "RPYID": 10
        }
    ]
}

我需要将 JobParameters (JSON) 中的 SID 和 RPYID 插入到另一个表中。

所以基本上需要有效地将存储在一个表中的 JSON 值转换为另一个表中的两列。

4

1 回答 1

1

OPENJSON像这样使用:

SELECT ID, j.SID, j.RPYID
FROM t
CROSS APPLY OPENJSON(JobParameters, '$.Parameters')
WITH (   
    SID int '$.SID',  
    RPYID int '$.RPYID'
) AS j

db<>fiddle 上的演示

于 2019-03-07T14:40:21.423 回答