jquery - 在值列表中查询 json 以获取现有值
问题描述
我的 Azure Sql 数据库中有(简化的)以下 json:
{
"Basket": "Test",
"Products": [
{ "Id": 1, "Name": "Apple" },
{ "Id": 2, "Name": "Pear" },
{ "Id": 3, "Name": "Coconut" },
]
}
我想查询一个装满上述篮子的表格。
CREATE TABLE [Baskets] (
[id] [int] NOT NULL,
[json] [varchar](max) NOT NULL
)
假设我想编写一个查询以仅选择包含椰子的篮子。怎么办?
我可以写一个像下面这样的查询,只有更多的产品可能......
SELECT
Id,
Json
FROM
Baskets
WHERE
JSON_VALUE(json, '$.Products[0].Id' = '3'
解决方案
答案(供将来参考)是使用OPENJSON函数。
SELECT
Id,
Json
FROM
Baskets
WHERE
'Coconut' = in (
select Name from OPENJSON(json, '$.Products')
with (Name nvarchar(30) '$.Name')
)
推荐阅读
- android - 每次在 Fragment 中的 onSaveInstanceState null
- selenium-webdriver - 硒 - 无法编辑文本字段
- css - AngularJs Material(或者一般来说可能只是css)-如何在行之间对齐列?
- c++ - 为多线程 unif_rand() 播种
- php - PHP 只返回第一个值
- c# - 拆分字符串开始和结束字符
- java - 使用谓词查询 dsl 并获取连接
- c# - 解决方案文件夹中的 Visual Studio 2017 Nuget.config 无法识别
- pyspark - 删除重复行,无论新信息如何 -PySpark
- python - 在 Python 中将整数放在没有空格的表格形式中