共計 2118 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章主要介紹“sql server2016 里面的 json 功能怎么使用”,在日常操作中,相信很多人在 sql server2016 里面的 json 功能怎么使用問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”sql server2016 里面的 json 功能怎么使用”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
測試一下基本的,從查詢結果里面構造一個 json 的格式
create table t1(ID int identity,name nvarchar(50),Chinese int ,Math int)insert into t1 values (張三 ,90,80),(李四 ,75,90),(王五 ,68,100)select * from t1select * from t1 for json auto-- 查詢結果 ID name Chinese Math----------- -------------------------------------------------- ----------- -----------1 張三 90 802 李四 75 903 王五 68 100--json 格式 [{ID :1, name : 張三 , Chinese :90, Math :80},{ID :2, name : 李四 , Chinese :75, Math :90},{ID :3, name : 王五 , Chinese :68, Math :100}]
這個是默認模式下面使用 json 的查詢結果。是不是十分清晰
然后我們再接再厲,第二波是這樣紙的。假如我們要繼續搞有層級關系的。我們還可以這樣寫。比方說把成績放在一個叫 points 的節點里面,也是可以分層的
select ID, name, Chinese as [Points.Chinese], Math as [Points.Math] from t1 for json path-- 結果 json[{ID :1, name : 張三 , Points :{ Chinese :90, Math :80}},{ID :2, name : 李四 , Points :{ Chinese :75, Math :90}},{ID :3, name : 王五 , Points :{ Chinese :68, Math :100}}]
他們的分數就放在了 json 里面的, 被一個 point 包住了。
如果說我要在這個結果里面添加一個頭來包住,當然,我可以使用每個列來個別名 [root.col] 來實現,然而就有點啰嗦了。所以我們可以使用這個 root 的關鍵字來添加一個頂節點
select ID, name, Chinese as [Points.Chinese], Math as [Points.Math] from t1 for json path,root(root) -- 返回的 json 結果 {root :[ { ID :1, name : 張三 , Points :{ Chinese :90, Math :80}}, {ID :2, name : 李四 , Points :{ Chinese :75, Math :90}},{ID :3, name : 王五 , Points :{ Chinese :68, Math :100}}]}
當然咯,查詢嘛,錄入數據總是難免遇到 null 值,在這方面,for json 是如何處理的呢?我在測試表添加一條數據在來查詢
insert into t1 values (趙六 ,100,null)select ID, name, Chinese as [Points.Chinese], Math as [Points.Math] from t1 where id in(3, 4) for json auto--json 的返回結果 [{ID :3, name : 王五 , Points.Chinese :68, Points.Math :100},{ID :4, name : 趙六 , Points.Chinese :100}]
auto 模式下,如果是空值,將會忽略該屬性。這樣的話很容易就每一個集合返回的屬性數量都不一來,這樣不好看。所以應對這種情況,我們可以使用 incluede_null_values 關鍵字,即使是空值,也帶出來
select ID, name, Chinese as [Points.Chinese], Math as [Points.Math] from t1 where id in(3, 4) for json auto, include_null_values--json 的返回結果 [{ID :3, name : 王五 , Points.Chinese :68, Points.Math :100},{ID :4, name : 趙六 , Points.Chinese :100, Points.Math :null}]
使用了這個關鍵字,就可以把空值帶出來,里面的值是 Null 值
到此,關于“sql server2016 里面的 json 功能怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!