Sql 我需要JSON数组中的所有值

Sql 我需要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

我有一个表,其中有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},
        {"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做标记呢?