
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表資料
- SQL - 約束
- SQL 查詢
- SQL - 插入查詢
- SQL - 選擇查詢
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查詢
- SQL - 刪除查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布林 (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線 vs 右連線
- SQL - UNION vs JOIN
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 組合鍵
- SQL - 備選鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - MIN & MAX
- SQL - NULL 函式
- SQL - CHECK 約束
- SQL - DEFAULT 約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - JSON_VALUE() 函式
SQL 的JSON_VALUE()函式接收一個 JSON 字串並返回一個標量值。它解碼 JSON 字串並沿著預定的路徑提取標量值。路徑採用特定的格式,如下所示。
'$' − 指的是整個 JSON 物件。
'$.property1' − 指的是 JSON 物件中的 property1。
'$[2]' − 指的是 JSON 物件中的第二個元素。
'$.property1.property2[4].property3' − 指的是 JSON 物件中的巢狀屬性。
語法
以下是 SQL JSON_VALUE() 函式的語法:
JSON_VALUE ( expression , path )
引數
expression − 通常是包含 JSON 文字的列名或變數。
path − 指定要提取的屬性的 JSON 路徑。如果路徑格式無效,JSON_VALUE 將返回錯誤。
示例
讓我們使用以下查詢從 JSON 字串中檢索鍵值:
SELECT JSON_VALUE('{"Name": "TUTORIALSPOINT"}', '$.Name') AS 'Result';
輸出
當我們執行上述查詢時,將獲得以下輸出:
+------------------------------------+ | Result| +------------------------------------+ | TUzTORIALSPOINT | +------------------------------------+
示例
在下面的示例中,我們將顯式地將 lax 指定給不包含與 JSON 字串匹配的引數的路徑,並使用以下查詢檢查結果:
SELECT JSON_VALUE('{"Name": "TUTORIALSPOINT"}', 'lax$.firstName') AS 'Result';
輸出
當我們執行上述查詢時,將獲得以下輸出:
+------------------------------------+ | Result| +------------------------------------+ | NULL | +------------------------------------+
示例
讓我們考慮以下示例,我們將使用以下查詢從 JSON 字串中檢索 JSON 陣列的第二個值:
DECLARE @iphone VARCHAR(MAX) = '{ "Item":"Iphone13", "Color":["Green", "Pink", "White"] }' SELECT JSON_VALUE(@iphone,'$.Color[1]') AS JSON_Color
輸出
當我們執行上述查詢時,將獲得以下輸出:
+------------------------------------+ | JSON_Color | +------------------------------------+ | Pink | +------------------------------------+
示例
讓我們考慮另一種情況,我們將透過提及索引位置來檢索 JSON 陣列中的第一條記錄,方法是使用以下查詢:
DECLARE @work VARCHAR(4000); SET @work = N'{ "Customers": [ { "Name": "XYZ", "Age": "23", "Address": "101, Sector 5, Gurugram, India", "Salary": 105000 }, { "Name": "ABC", "Age": "34", "Address": "17, Park Avenue, Mumbai, India", "Salary": 780000 } ] }'; SELECT JSON_VALUE(@work, '$.Customers[0].Name') AS 'Name', JSON_VALUE(@work, '$.Customers[0].Age') AS 'Age', JSON_VALUE(@work, '$.Customers[0].Address') AS 'Address', JSON_VALUE(@work, '$.Customers[0].Salary') AS 'Salary';
輸出
執行上述查詢後,將顯示以下輸出:
+-------+-----+-------------------------------+-----------+ | Name |Age | Address | Salary | +-------+-----+-------------------------------+-----------+ | XYZ |23 |101, Sector 5, Gurugram, India | 105000 | +-------+-----+-------------------------------+-----------+
示例
讓我們考慮另一個示例,我們將使用以下查詢從巢狀 JSON 中檢索值:
DECLARE @work VARCHAR(4000); SET @work = N'{ "Customers": [ { "Name": "Revi", "Age": "25", "Department": {"course":"HTML", "Field":"IT" "Salary": 100000 }, ] }'; SELECT JSON_VALUE(@work, '$.Customers[0].Name') AS 'Name', JSON_VALUE(@work, '$.Customers[0].Department.Field') AS 'Field';
輸出
執行上述查詢後,將顯示以下輸出:
+-------+-----+ | Name |Field| +-------+-----+ | Revi |IT | +-------+-----+
示例
讓我們來看下面的例子,我們將使用嚴格路徑並嘗試使用以下查詢檢索輸出:
SELECT JSON_VALUE('{"car": "RX100"}', 'strict$.car') AS 'Output';
輸出
執行上述查詢後,將顯示以下輸出:
+----------------------------------------------+ | Result | +----------------------------------------------+ | RX100 | +----------------------------------------------+
sql-json-functions.htm
廣告