SqlServer 2016 中查詢JSON 數據


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

       官方文檔:https://docs.microsoft.com/en-us/sql/t-sql/functions/openjson-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15  

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM