【发布时间】:2016-09-07 14:54:41
【问题描述】:
我有 JSON 之类的
{
"url": {
"web_categories": [{ "id": 226 } , { "id": 401 }]
},
"account":"Basic"
}
我想在 SQL 中输出一列,其中包含与 URL 匹配的所有 web_categories 的 ID。
| webcat |
|--------|
| 226 |
| 401 |
使用 SQL Server 2016 / Azure SQL DB 对 JSON 的支持,如何实现?
可重现的例子
DECLARE @jsonInfo VARCHAR(MAX)
SET @jsonInfo =N'{
"url": {
"web_categories": [{ "id": 226 }]
},
"account":"Basic"
}'
以前的迭代
select * from openjson(@jsonInfo) with (webcat varchar(12) '$.url.web_categories.id[0]')
select * from openjson(@jsonInfo) with (webcat varchar(12) '$.url.web_categories.id')
select * from openjson(@jsonInfo) with (webcat varchar(12) '$.url.web_categories')
select * from openjson(@jsonInfo,'$.url.web_categories.id[0]')
select * from openjson(@jsonInfo,'$.url.web_categories.id')
select * from openjson(@jsonInfo,'$.url.web_categories')
select JSON_QUERY(@jsonInfo, '$.url.web_categories.id[0]') webcat
select JSON_QUERY(@jsonInfo, '$.url.web_categories.id') webcat
select JSON_QUERY(@jsonInfo, '$.url.web_categories') webcat
select JSON_VALUE(@jsonInfo, '$.url.web_categories.id[0]') webcat
select JSON_VALUE(@jsonInfo, '$.url.web_categories.id') webcat
select JSON_VALUE(@jsonInfo, '$.url.web_categories') webcat
【问题讨论】:
-
您是否要将您的答案标记为已接受?
-
标记为已接受
标签: sql-server json azure-sql-database sql-server-2016