SQL Server json数组字段的json字段查询

场景描述

有一个School表,里面有一个字段:person nvarchar(max),该字段保存如下类型的json数据,现在需要查询出包含"阿斯蒂芬"的记录。

[
  {
    "Id": 7933680100970752,
    "Name": "阿斯蒂芬"
  },
  {
    "Id": 7933680101232896,
    "Name": "阿斯蒂芬2"
  }
]

SQL示例

SELECT
School.Id,
JSON_VALUE(PersonInfo.value,'$.Name') AS PersonName
FROM School CROSS APPLY OPENJSON (School.person) AS PersonInfo

WHERE JSON_VALUE(PersonInfo.value,'$.Name') = '阿斯蒂芬'
	--同样支持模糊查询
	--AND JSON_VALUE(PersonInfo.value,'$.Name') like '阿%'

查询结果
在这里插入图片描述

选一个id确认一下上面的结果是否正确:

select Id,person
from School 
WHERE id = 7933680107196682

查询结果
在这里插入图片描述

可以看到id为7933680107196682的记录确实包含了“阿斯蒂芬”这个名字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值