0

我有一个包含单行数据的表,其中有一个 nvarchar(MAX) 类型的列,让我们将该列命名为 json_column,该列的值如下所示:

{
"data": [
    {
        "name": "john",
        "num": "123"
    },
    {
        "name": "peter",
        "num": "345"
    },
    {
        "name": "donald",
        "num": "789"
    },
 ]
}

现在如何获取 num 的值,其中 name 作为输入传递给 where 子句或查询?

我的查询应该只返回 num 的值。

例如:假设我需要名称为 'john' 的 num 的值,并且查询应该返回 123。

4

1 回答 1

0

我刚刚找到了答案,查询可以写成如下:

SELECT OPENJSON((SELECT json_column From json_column_table),'$.data')
WITH 
(
 name nvarchar(100) '$.name',
 num  nvarchar(100) '$.num'
)
WHERE name='john';
于 2018-10-04T12:40:11.257 回答