Sql 我需要JSON数组中的所有值
我有一个表,其中有JSON数据,字段类型是NVARCH4000Sql 我需要JSON数组中的所有值,sql,json,sql-server,Sql,Json,Sql Server,我有一个表,其中有JSON数据,字段类型是NVARCH4000 [ {"number":1,"booked":0}, {"number":2,"booked":0}, {"number":3,"booked":0}, {"number":4,"booked":1}, {"number":5,"booked":0}, {"number":6,"booked":0}, {"numb
[
{"number":1,"booked":0},
{"number":2,"booked":0},
{"number":3,"booked":0},
{"number":4,"booked":1},
{"number":5,"booked":0},
{"number":6,"booked":0},
{"number":7,"booked":0},
{"number":8,"booked":0}
]
我想查询数组的这个字段,并希望输出的已预订数量为1,未预订数量为7。
我使用了JSON_值、JSON_查询函数,但没有切中要害
我还要那个号码:4号已经预订了
我正在使用SQL Server 2016
[
{"number":1,"booked":0},
{"number":2,"booked":0},
{"number":3,"booked":0},
{"number":4,"booked":1},
{"number":5,"booked":0},
{"number":6,"booked":0},
{"number":7,"booked":0},
{"number":8,"booked":0}
]
选择查询:
SELECT
COUNT(JSON_VALUE(jsonInfo,'$.booked'))
OVER(PARTITION BY JSON_VALUE(jsonInfo,'$.booked'))
FROM table
GROUP BY JSON_VALUE(jsonInfo,'$.booked')
ORDER BY JSON_VALUE(jsonInfo,'$.booked')
您好,如果我了解您的全部意图,这些示例可以回答:
DECLARE @json NVARCHAR(MAX)
SET @json =
N'[
{"number":1,"booked":0},
{"number":2,"booked":0},
{"number":3,"booked":0},
{"number":4,"booked":1},
{"number":5,"booked":0},
{"number":6,"booked":0},
{"number":7,"booked":0},
{"number":8,"booked":0}
]'
SELECT number, booked
FROM OPENJSON(@json)
WITH (number int 'strict $.number', booked int 'strict $.booked')
WHERE booked = 1
今后,请提供一些数据和例外输出,并查询您的尝试。我正在使用SQL Server 2016。。。那你为什么用MySQL做标记呢?