共計 2287 個字符,預計需要花費 6 分鐘才能閱讀完成。
這期內容當中丸趣 TV 小編將會給大家帶來有關 SQL Server 中 JSON 函數的作用是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
2.1 JSON 函數
使用本節中頁面中描述的功能來驗證或更改 JSON 文本或提取簡單或復雜的值。
有關在 SQL Server 中內置 JSON 支持的更多信息,請參閱 JSON 數據(SQL Server)。
2.2 ISJSON
測試字符串是否包含有效的 JSON。
2.2.1 例子
2.3 JSON_VALUE
從 JSON 字符串中提取標量值。
要從 JSON 字符串而不是標量值中提取對象或數組,請參閱 JSON_QUERY(Transact-SQL)。有關 JSON_VALUE 和 JSON_QUERY 之間的差異的信息,請參閱比較 JSON_VALUE 和 JSON_QUERY。
2.4 JSON_QUERY
從 JSON 字符串中提取對象或數組。
要從 JSON 字符串而不是對象或數組中提取標量值,請參閱 JSON_VALUE(Transact-SQL)。有關 JSON_VALUE 和 JSON_QUERY 之間的差異的信息,請參閱比較 JSON_VALUE 和 JSON_QUERY。
2.5 JSON_MODIFY
更新 JSON 字符串中的屬性值,并返回更新的 JSON 字符串。
小結
3 參考文獻
【01】https://docs.microsoft.com/zh-cn/sql/t-sql/language-elements/expressions-transact-sql
4 版權
感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。
以下是一些補充
下面是我們熟悉的 SELECT 及輸出格式,后面對 JSON 的演示基于此 SQL:
2、FOR JSON AUTO,Root():為 JOSN 加上根節點若要為 FOR JSON 加上 Root Key,可以用 ROOT 選項來自定義 ROOT 節點的名稱:
3、FOR JSON PATH 輸出:可通過列別名來定義 JSON 對象的層次結構若要自定義輸出 JSON 格式的結構時,必須使用 JSONPATH。
FOR JSON Auto,自動按照查詢語句中使用的表結構來創建嵌套的 JSON 子數組,類似于 For Xml Auto 特性。 FOR JSON Path,通過列名或者列別名來定義 JSON 對象的層次結構,列別名中可以包含“.”,JSON 的成員層次結構將會與別名中的層次結構保持一致。
這個特性非常類似于早期 SQL Server 版本中的 For Xml Path 子句,可以使用斜線來定義 xml 的層次結構。
4、FOR JSON PATH+ROOT 輸出:為 JOSN 加上根節點
5、INCLUDE_NULL_VALUES:值 null 的字段需要顯示出現。為 NULL 的數據在輸出 JSON 時,會被忽略,若想要讓 NULL 的字段也顯示出來,可以加上選項 INCLUDE_NULL_VALUES,該選項也適用于 AUTO。
6、列的別名,可以增加帶有層級關系的節點。比如下面的 SQL,增加了一個“SN”節點,把欄位 SERNUM 和 CLIMAT 放在里面:
二、解析 JSON 格式的數據
1、使用 OPENJSON() 函數:
2、通過 WITH 選項,自定義輸出列:
三、JSON 函數
declare @param nvarchar(max);set @param = N { info :{ type :1, address :{ town : Bristol , county : Avon , country : England }, tags :[Sport , Water polo] }
, type : Basic }
1、ISJSON:測試字符串是否包含有效 JSON。
print iif(isjson(@param) 0, OK , NO
返回:OK
2、JSON_VALUE:從 JSON 字符串中提取標量值。
print json_value(@param, $.info.address.town print json_value(@param, $.info.tags[1]
返回:Bristol,Water polo
3、JSON_QUERY:從 JSON 字符串中提取對象或數組。
print json_query(@param, $.info
{ type :1, address :{ town : Bristol , county : Avon , country : England }, tags :[Sport , Water polo] }
4、JSON_MODIFY : 更新 JSON 字符串中屬性的值,并返回已更新的 JSON 字符串。
print json_modify(@param, $.info.address.town , London
返回:
{ info :{ type :1, address :{ town : London , county : Avon , country : England }, tags :[Sport , Water polo] }, type : Basic }
四、注意事項
SQL2016 中的新增的內置 JSON 進行了簡單介紹,主要有如下要點:
JSON 能在 SQLServer2016 中高效的使用,但是 JSON 并不是原生數據類型; 如果使用 JSON 格式必須為輸出結果是表達式的提供別名; JSON_VALUE 和 JSON_QUERY 函數轉移和獲取 Varchar 格式的數據,因此必須將數據轉譯成你需要的類型。 在計算列的幫助下查詢 JSON 可以使用索引進行優化。
上述就是丸趣 TV 小編為大家分享的 SQL Server 中 JSON 函數的作用是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。