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