
- 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 - BOOLEAN (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 - 檢查約束
- SQL - 預設約束
- 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_ARRAY() 函式
SQL 的JSON_ARRAY()函式接受一個表示式或一個用逗號分隔的表示式列表,並返回一個包含這些值的 JSON 陣列。在 SELECT 語句中,可以將幾種型別的選擇項與 JSON ARRAY 結合使用。其他允許使用 SQL 函式的位置(例如 WHERE 子句)也允許指定 JSON ARRAY。
JSON ARRAY 將每個陣列元素的值作為字串(帶雙引號)或數字返回。返回數字的格式是規範的。作為文字,返回用雙引號括起來的數字字串。所有其他資料型別(如日期和 $List)的返回值都是字串。JSON_ARRAY 不支援 COUNT(*) 聚合函式。
語法
以下是 SQL JSON_ARRAY() 函式的語法:
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] ) <json_array_value> ::= value_expression <json_null_clause> ::= NULL ON NULL | ABSENT ON NULL
引數
json_array_value − 它是一個表示式,指示 JSON 陣列中元素的值。
json_null_clause − 用於控制當值表示式為 NULL 時 JSON_OBJECT 函式的行為。NULL ON NULL 選項在生成 JSON_ARRAY 的值時將 SQL NULL 值轉換為 JSON NULL。ABSENT ON NULL 選項如果其值為 NULL,則會從 JSON 陣列中省略該元素。此選項的預設設定為“Absent on Null”。
示例
讓我們使用以下查詢檢索空 JSON 陣列:
SELECT JSON_ARRAY() AS Result;
輸出
當我們執行上述查詢時,輸出如下所示:
+------------------------------------+ | Result| +------------------------------------+ | [] | +------------------------------------+
示例
讓我們檢索表示式中傳遞的所有 JSON_ARRAY 值,使用以下查詢:
SELECT JSON_ARRAY('abc', 14, 'bcd', 3) AS Result;
輸出
當我們執行上述查詢時,輸出如下所示:
+------------------------------------+ | Result| +------------------------------------+ | ["abc",14,"bcd",3] | +------------------------------------+
示例
讓我們來看另一個示例,我們將使用 NULL 作為輸入值,該值會否定 null 值,並在 JSON_ARRAY 中返回其他輸入值。因為 json_null_clause 被省略,並且其預設值為 ABSENT ON NULL,所以 NULL 值不會轉換為 JSON null 值:
SELECT JSON_ARRAY('abc', 14, 'bcd', NULL) AS Result;
輸出
當我們執行上述查詢時,輸出如下所示:
+------------------------------------+ | Result| +------------------------------------+ | ["abc",14,"bcd"] | +------------------------------------+
示例
讓我們考慮另一種情況,我們將使用 NULL ON NULL 選項,該選項有助於將任何 SQL NULL 值轉換為 JSON null 值,並使用以下查詢檢索輸出:
SELECT JSON_ARRAY('aBC', 14, NULL, 3 NULL ON NULL) AS Result;
輸出
執行上述查詢後,輸出將顯示如下:
+------------------------------------+ | Result| +------------------------------------+ | ["aBC",14,null,3] | +------------------------------------+
示例
讓我們考慮另一個示例,我們將使用以下查詢檢索包含 JSON 字串的一個元素和 JSON 物件的另一個元素的 JSON_ARRAY:
SELECT JSON_ARRAY('ABC', JSON_OBJECT('car':'RX100', 'type':2)) AS Result;
輸出
執行上述查詢後,輸出將顯示如下:
+------------------------------------+ | Result| +------------------------------------+ | ["ABC",{"car":"RX100","type":2}] | +------------------------------------+
示例
考慮另一種情況,我們將使用以下查詢檢索包含 JSON 字串的一個元素、JSON 物件的另一個元素以及包含 JSON 陣列的另一個元素的 JSON_ARRAY:
SELECT JSON_ARRAY('TP', JSON_OBJECT('course':'HTML', 'type':2), JSON_ARRAY(145, null, 6 NULL ON NULL)) AS Result;
輸出
執行上述查詢後,輸出將顯示如下:
+----------------------------------------------+ | Result | +----------------------------------------------+ |["TP",{"course":"HTML","type":2},[145,null,6]]| +----------------------------------------------+
示例
讓我們看一下以下示例,我們將使用以下查詢將輸入指定為變數或 SQL 表示式:
DECLARE @work varchar(64) = NEWID(); SELECT JSON_ARRAY(1, @work, (SELECT @@SPID)) AS Result;
輸出
上述查詢的輸出如下所示:
+----------------------------------------------+ | Result | +----------------------------------------------+ |[1,"1DAC88DD-BE4E-45C7-BEA1-6FAF3EE86EE0",73] | +----------------------------------------------+