SQL Server JSON查询过滤返回

时间:2018-12-11 21:27:11

标签: sql json sql-server

我在与用户相关的单列(varchar(max))中具有以下JSON数据:

[{
    "ExtensionData": {},
    "IsDefault": false,
    "MethodType": "OneWaySMS"
},
{
    "ExtensionData": {},
    "IsDefault": false,
    "MethodType": "TwoWayVoiceMobile"
},
{
    "ExtensionData": {},
    "IsDefault": false,
    "MethodType": "PhoneAppOTP"
},
{
    "ExtensionData": {},
    "IsDefault": true,
    "MethodType": "PhoneAppNotification"
}]

任何查询用户记录的方法以及利用子查询(或类似查询)的方法,只返回与“ isDefault:true”相同的块中的MethodType

那么根据上面的示例,返回的列将仅显示“ PhoneAppNotification”?

1 个答案:

答案 0 :(得分:1)

尝试一下:

select MethodType
from [table]
cross apply OPENJSON([column], '$')
with (IsDefault varchar(80), MethodType varchar(80))
where IsDefault = 'true'