Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否使用属性值从MS SQL Server中的JSON blob检索特定值?_Json_Sql Server_Open Json - Fatal编程技术网

是否使用属性值从MS SQL Server中的JSON blob检索特定值?

是否使用属性值从MS SQL Server中的JSON blob检索特定值?,json,sql-server,open-json,Json,Sql Server,Open Json,在我的数据库中有一列存储JSON。JSON如下所示: { "views": [ { "id": "1", "sections": [ { "id": "1", "isToggleActive": false, "components&qu

在我的数据库中有一列存储JSON。JSON如下所示:

{
  "views": [
    {
      "id": "1",
      "sections": [
        {
          "id": "1",
          "isToggleActive": false,
          "components": [
            {
              "id": "1",
              "values": [
                "02/24/2021"
              ]
            },
            {
              "id": "2",
              "values": []
            },
            {
              "id": "3",
              "values": [
                "5393",
                "02/26/2021 - Weekly"
              ]
            },
            {
              "id": "5",
              "values": [
                ""
              ]
            }
          ]
        }
      ]
    }
  ]
}
我想创建一个迁移脚本,从这个JSON中提取一个值,并将它们存储在自己的列中

在上面的JSON中,在
components
数组中,我想从
component
中提取第二个值,其
ID
为“3”(除其他外,这是一个很好的示例)。因此,我想提取值“02/26/2021-Weekly”以存储在它自己的列中

我正在查看,但我只看到了为json属性指定索引的示例。我不知道我需要什么样的json路径。这是否可能与JSON_值有关

编辑:为了澄清这一点,视图和节组件可以有静态数组索引,因此我可以使用视图[0]。节[0]作为它们的索引。目前,我的SQL查询只有以下内容:

SELECT
    *
FROM OPENJSON(@jsonInfo, '$.views[0].sections[0]')

您需要使用
OPENJSON
来分解内部数组,然后使用
WHERE
对其进行过滤,最后使用
JSON\u值选择正确的值

选择
JSON_值(components.VALUE,'$.values[1]')
从OPENJSON(@jsonInfo,'$.views[0].sections[0].components')组件
其中JSON_值(components.VALUE,'$.id')='3'