sql-server - 在 SQL Server 中查询根是对象数组的 Json
问题描述
我在 SQL 表中有一个列,它的 json 值如下所示:
[
{"address":{"value":"A9"},
"value":{"type":11,"value":"John"}},
{"address":{"value":"A10"},
"value":{"type":11,"value":"Doe"}}]
JSON_VALUE 或 JSON_QUERY 的 MSDN 示例需要根目录下的 json 对象。如何在上面查询以返回“地址”为 A9 和“值”为 John 的行?我正在使用 SQL Azure。
解决方案
像这样的东西:
declare @json nvarchar(max) = '[
{"address":{"value":"A9"},
"value":{"type":11,"value":"John"}},
{"address":{"value":"A10"},
"value":{"type":11,"value":"Doe"}}]'
select a.*
from openjson(@json) r
cross apply openjson(r.value)
with (
address nvarchar(200) '$.address.value',
name nvarchar(200) '$.value.value'
) a
where address = N'A9'
and name = N'John'
输出
address name
------- -----
A9 John
(1 row affected)
推荐阅读
- python-3.x - 如何从一个大字符串中分离一些字符?
- java - 数据库 DataFrame Null 值未进入 Json 文件
- javascript - 如果一个函数是在一个函数中创建的,那么每次调用外部函数时都会再次创建它吗?
- java - Android:我们可以在布局中动态添加recyclerview吗
- vb.net - 如何编写一个函数来返回vb.net中的变量名?
- mysql - Laravel 从 mySql 数据库中获取时间戳不超过一天的条目
- html - 如何避免粘性元素的高度影响内容?
- sql-server - 自动将 RDS 备份 SQL Server 到 S3
- xml - 在使用 Twig 处理程序找到第一个匹配项后停止扫描 XML 文件
- java - Java System.setProperty 在我的路径前面添加项目路径