前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL函数 JSON_ARRAY

SQL函数 JSON_ARRAY

作者头像
用户7741497
发布2022-04-06 15:21:49
3.8K0
发布2022-04-06 15:21:49
举报
文章被收录于专栏:hml_知识记录

SQL函数 JSON_ARRAY

JSON数组形式返回数据的转换函数。

大纲

代码语言:javascript
复制
JSON_ARRAY(expression [,expression][,...] [NULL ON NULL | ABSENT ON NULL])

参数

  • expression - 表达式或逗号分隔的表达式列表。这些表达式可以包括列名、聚合函数、算术表达式、文字和文字NULL
  • ABSENT ON NULL NULL ON NULL - 可选-指定如何在返回的JSON数组中表示空值的关键字短语。NULL ON NULL(缺省值)表示带有单词NULL(未引号)的NULL(缺少)数据。在NULL上不存在将从JSON数组中省略空数据;它不会保留占位符逗号。此关键字短语对空字符串值没有影响。

描述

Json_array接受表达式或(更常见的)逗号分隔的表达式列表,并返回包含这些值的JSON数组。Json_array可以在SELECT语句中与其他类型的SELECT-Items结合使用。可以在可以使用SQL函数的其他位置指定json_array,例如在WHERE子句中。

返回的JSON数组格式如下:

代码语言:javascript
复制
[ element1 , element2 , element3 ]

Json_array以字符串(用双引号括起来)或数字形式返回每个数组元素值。数字以规范格式返回。数字字符串以文字形式返回,用双引号括起来。所有其他数据类型(例如,DATE$LIST)都作为字符串返回。

Json_array不支持将星号(*)语法作为指定表中所有字段的方式。它支持COUNT(*)聚合函数。

返回的JSON数组列被标记为表达式(默认情况下);可以为JSON_ARRAY指定列别名。

选择模式和归类

当前%SelectMode属性确定返回的JSON数组值的格式。通过更改Select Mode,所有Date%List元素都以该Select Mode格式的字符串包含在JSON数组中。

可以通过将格式转换函数(%EXTERNAL%INTERNAL%ODBCIN%ODBCOUT)应用于JSON_ARRAY内的各个字段名来覆盖当前的选择模式。将格式转换函数应用于JSON_ARRAY没有任何效果,因为JSON数组的元素是字符串。

可以将归类函数应用于JSON_ARRAY内的单个字段名或整个JSON_ARRAY

  • 应用于JSON_ARRAY的排序函数在JSON数组格式化之后应用排序规则。因此,%SQLUPPER(JSON_ARRAY(f1,f2))将所有JSON数组元素值转换为大写。%SQLUPPER(JSON_ARRAY(f1,f2))JSON数组之前插入一个空格,而不是在数组元素之前插入一个空格;因此它不会强制将数字解析为字符串。
  • 应用于JSON_ARRAY中的元素的排序规则函数将应用该排序规则。因此,JSON_ARRAY(‘abc’,%SQLUPPER(‘abc’))返回["Abc"," ABC"](注意前导空格);而JSON_ARRAY(007,%SQLSTRING(007))返回[7," 7"]。由于%SQLUPPER会在值之前插入一个空格,因此通常最好指定大小写转换函数,如LCASEUCASE。可以将排序规则应用于元素和整个数组:%SQLUPPER(JSON_ARRAY('Abc',%SQLSTRING('Abc'))) returns ["ABC"," ABC"]

ABSENT ON NULL

如果指定可选的ACESING ON NULL关键字短语,则JSON数组中不包括NULL(或NULL文字)列值。JSON数组中不包括占位符。这可能会导致JSON数组具有不同数量的元素。例如,下面的程序返回JSON数组,其中对于某些记录,第三个数组元素是Age,对于其他记录,第三个数组元素是FavoriteColors

代码语言:javascript
复制
SELECT JSON_ARRAY(%ID,Name,FavoriteColors,Age ABSENT ON NULL) FROM Sample.Person

如果未指定关键字短语,则NULL的默认值为NULL:NULL由单词NULL(未用引号分隔)表示为逗号分隔的数组元素。因此,JSON_ARRAY函数返回的所有JSON数组都将具有相同数量的数组元素。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL函数 JSON_ARRAY
  • 大纲
  • 参数
  • 描述
  • 选择模式和归类
  • ABSENT ON NULL
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档