- 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] | +----------------------------------------------+