JSON存储
在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar() 进行存储,不要用text进行存储,用text时候,json的函数不支持。
表数据:
JSON_VALUE 查询
官方文档:https://docs.microsoft.com/en-us/sql/t-sql/functions/json-value-transact-sql?view=sql-server-ver15
SELECT [shift_name] , [test_result] FROM [vSkyQMS].[dbo].[test] WHERE JSON_VALUE([test_result], '$.ShiftDate') like '%2%'
查询结果:
它无法直接对,一开始是数组形式的JSON 继续过滤,也有可能是我没知道方法。欢迎在下面留言。但是它可以对JSON里面如果包含数组类型进行过滤,也就是可以$.names[1].value 这样形式。并且对于大于4000的字符串不建议使用。
JSON_OPTION
SELECT shift_name, shiftInfo.ShiftDate, test_result FROM test CROSS APPLY OPENJSON (test.test_result) WITH ( ShiftDate NVARCHAR (200) N'$.ShiftDate' ) AS shiftInfo WHERE shiftInfo.ShiftDate='222'
查询结果:
对一开始是数组的json采用OPENJSON()WITH()进行查询。发现都可以查询出来。
其它使用可以参考其它博主的文章:https://www.cnblogs.com/wsasdfgasdfg/p/12658522.html