【问题标题】:Assistance with JSON functions in SQL Server 2016协助 SQL Server 2016 中的 JSON 函数
【发布时间】:2019-03-07 14:32:19
【问题描述】:

我有一个格式如下的 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 值高效地转换为另一个表中的两列。

【问题讨论】:

  • 您是指 SQL-2016 标准,还是名称容易混淆的 MS 产品?

标签: sql json sql-server sql-server-2016 json-value


【解决方案1】:

像这样使用OPENJSON

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

Demo on db<>fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多