第六十八章 SQL函数 JSON_ARRAY

第六十八章 SQL函数 JSON_ARRAY
最新回答
古巷

2026-04-28 05:31:25

SQL函数 JSON_ARRAY 实现以JSON数组形式返回数据的转换。它接受表达式或逗号分隔的表达式列表,并返回包含这些值的JSON数组。在SELECT语句中,JSON_ARRAY 可与其他 SELECT-Items 结合使用,也可在 WHERE 子句中指定。返回的 JSON 数组格式为每个数组元素以字符串或数字形式返回,数字以规范格式返回,数字字符串以文字形式返回,所有其他数据类型作为字符串返回。JSON_ARRAY 不支持星号语法指定表中所有字段,但支持 COUNT(*) 聚合函数。返回的 JSON 数组列默认标记为表达式,可以为 JSON_ARRAY 指定列别名。

当前%SelectMode 属性决定返回的 JSON 数组值的格式。通过更改 Select Mode,所有 Date 和%List 元素均以当前 Select Mode 格式的字符串包含在 JSON 数组中。格式转换函数(%EXTERNAL、%INTERNAL、%ODBCIN、%ODBCOUT)可应用于 JSON_ARRAY 内的字段名,覆盖当前的选择模式。然而,应用于 JSON_ARRAY 的格式转换函数没有效果,因为数组元素是字符串。归类函数可应用于 JSON_ARRAY 内的单个字段名或整个 JSON_ARRAY。

当使用 ACESING ON NULL 关键字短语,JSON 数组中不包括 NULL 列值或占位符,可能导致 JSON 数组元素数量不同。未指定该短语时,NULL 默认为 NULL,用未分隔的单词表示,导致所有返回的 JSON 数组具有相同数量的元素。

示例展示了如何应用 JSON_ARRAY 来格式化包含逗号分隔的字段值列表、单个元素格式化、包含文字和字段值、包含空值和字段值以及联接表中的字段值的 JSON 数组。在查询中设置 ODBC %SelectMode 来决定所有字段包括 JSON 数组值的表示方式。动态 SQL 示例展示了如何通过应用%EXTERNAL FORMAT-CONVERSION 函数覆盖特定 JSON 数组元素的选择模式。在 WHERE 子句中使用 JSON_ARRAY 可在不使用 OR 语法的情况下对多列执行 CONTAINS 测试。