首页 > 数据库技术 > 详细

SQL SERVER 查询字段是JSON格式的方法

时间:2020-04-01 16:17:02      阅读:245      评论:0      收藏:0      [点我收藏+]
项目中,有时候会将某个字符串类型的字段定义为JSON格式。
如果要查询其某个字段包含了某值,则通常用关键字 LIKE ‘%"IsCheckedTemporary":true%‘

SQL SERVER2016版本开始,有了对JSON操纵的内置函数。具体见官方连接:
https://docs.microsoft.com/zh-cn/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15
兹举例如下:
一、如果字段内容是这样的JSON格式:
[{"userid":"10001","username":"戊土","level":"5"},{"userid":"10002","username":"丙火","level":"2"}]
则sql语句:
SELECT *,UserInfo.username FROM dbo.包含JSON字段的表名 CROSS APPLY OPENJSON (包含JSON字段的表名.字段)
WITH (
userid INT N‘$.userid‘,
username NVARCHAR (200) N‘$.username‘,
level INT N‘$.level‘
) AS UserInfo
WHERE UserInfo.userid=‘10001‘
二、如果字段内容是这样的JSON格式:
{"province":[{"pname":"广东"},{"pname":"广西"}],"city":[{"cname":"上海市"},{"cname":"杭州市"}]}
则sql语句:
SELECT *,Province.pname,City.cname FROM dbo.包含JSON字段的表名
CROSS APPLY OPENJSON (包含JSON字段的表名.字段,N‘$.prov‘)
WITH (pname nvarchar(max) N‘$.pname‘) AS Province
CROSS APPLY OPENJSON (包含JSON字段的表名.字段,N‘$.city‘)
WITH (cname nvarchar(max) N‘$.cname‘) AS City
WHERE Province.pname=‘广东‘ AND City.cname=‘上海市‘

SQL SERVER 查询字段是JSON格式的方法

原文:https://www.cnblogs.com/johsan/p/12612367.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!