在SQL Server中查询嵌套的JSON对象

时间:2018-09-02 19:03:01

标签: sql json sql-server database

假设我在某个列的每个表行中都有此JSON对象和这种层次结构。

{
    "A": {
        "const-key-name": "AAAAAA",
        "B": {
            "const-key-name": "BBBBBB"
        },
        "C": {
            "const-key-name": "CCCCCCCC"
            "D": {
                "const-key-name": "DDDDDDD"
            },
            "E": {
                "const-key-name": "EEEEEEE"
                "F": {
                    "const-key-name": "FFFFFFF"
                }
            }
        }
}

对于我的JSON层次结构中的每个键,我都有一个名为const-key-name的先进的键,并且其中可能存在的每个其他键都有一个未知的名称(即,我不知道{{1} }将有两个名为CD的键。

给出层次结构中的路径,我主要尝试使用SQL Server的E函数查询其子级const-key-name

例如,给定路径OPENJSON,返回的表将具有2行,每行包含$.A.Cconst-key-name的{​​{1}}值。

关于我的看法,查询应包含2部分:

  1. 获取位于D上的密钥
  2. 选择每个键和E处的$.A.C

应类似于:

const-key-name

获取键没有问题,但是将每个$.A.C.D/E值查询到一个表中对我来说是一个挑战。 如果您认为我解决这个问题的方法是错误的,我很乐意听到其他想法。

0 个答案:

没有答案