📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

数组函数



本节提供 TiDB Cloud Lake 中数组函数的参考信息。数组函数支持创建、操作、搜索和转换数组数据结构。

数组创建与构造

函数描述示例
ARRAY从表达式构建数组ARRAY(1, 2, 3) → [1,2,3]
ARRAY_CONSTRUCT从单个值创建数组ARRAY_CONSTRUCT(1, 2, 3) → [1,2,3]
RANGE生成顺序数字组成的数组RANGE(1, 5) → [1,2,3,4]
ARRAY_GENERATE_RANGE生成可选步长的序列ARRAY_GENERATE_RANGE(0, 6, 2) → [0,2,4]

数组访问与信息

函数描述示例
GET按索引从数组中获取元素GET([1,2,3], 1) → 1
ARRAY_GETGET 函数的别名ARRAY_GET([1,2,3], 1) → 1
CONTAINS检查数组是否包含指定值CONTAINS([1,2,3], 2) → true
ARRAY_CONTAINS检查数组是否包含指定值ARRAY_CONTAINS([1,2,3], 2) → true
ARRAY_SIZE返回数组长度(别名:ARRAY_LENGTH)ARRAY_SIZE([1,2,3]) → 3
ARRAY_COUNT统计非 NULL 条目数量ARRAY_COUNT([1,NULL,2]) → 2
ARRAY_ANY返回第一个非 NULL 值ARRAY_ANY([NULL,'a','b']) → 'a'

数组修改

函数描述示例
ARRAY_APPEND在数组末尾追加元素ARRAY_APPEND([1,2], 3) → [1,2,3]
ARRAY_PREPEND在数组开头前置元素ARRAY_PREPEND(0, [1,2]) → [0,1,2]
ARRAY_INSERT在指定位置插入元素ARRAY_INSERT([1,3], 1, 2) → [1,2,3]
ARRAY_REMOVE删除指定元素的所有出现项ARRAY_REMOVE([1,2,2,3], 2) → [1,3]
ARRAY_REMOVE_FIRST删除数组中的第一个元素ARRAY_REMOVE_FIRST([1,2,3]) → [2,3]
ARRAY_REMOVE_LAST删除数组中的最后一个元素ARRAY_REMOVE_LAST([1,2,3]) → [1,2]

数组组合与操作

函数描述示例
ARRAY_CONCAT连接多个数组ARRAY_CONCAT([1,2], [3,4]) → [1,2,3,4]
ARRAY_SLICE提取数组的一部分ARRAY_SLICE([1,2,3,4], 1, 2) → [1,2]
SLICEARRAY_SLICE 函数的别名SLICE([1,2,3,4], 1, 2) → [1,2]
ARRAYS_ZIP按元素位置组合多个数组ARRAYS_ZIP([1,2], ['a','b']) → [(1,'a'),(2,'b')]
ARRAY_SORT对值进行排序;不同变体可控制顺序和空值ARRAY_SORT([3,1,2]) → [1,2,3]

数组集合操作

函数描述示例
ARRAY_DISTINCT返回数组中的唯一元素ARRAY_DISTINCT([1,2,2,3]) → [1,2,3]
ARRAY_UNIQUEARRAY_DISTINCT 函数的别名ARRAY_UNIQUE([1,2,2,3]) → [1,2,3]
ARRAY_INTERSECTION返回数组之间的公共元素ARRAY_INTERSECTION([1,2,3], [2,3,4]) → [2,3]
ARRAY_EXCEPT返回第一个数组中存在但第二个数组中不存在的元素ARRAY_EXCEPT([1,2,3], [2,4]) → [1,3]
ARRAY_OVERLAP检查数组是否有公共元素ARRAY_OVERLAP([1,2,3], [3,4,5]) → true

数组处理与转换

函数描述示例
ARRAY_TRANSFORM对每个数组元素应用函数ARRAY_TRANSFORM([1,2,3], x -> x * 2) → [2,4,6]
ARRAY_FILTER根据条件过滤数组元素ARRAY_FILTER([1,2,3,4], x -> x > 2) → [3,4]
ARRAY_REDUCE使用聚合将数组归约为单个值ARRAY_REDUCE([1,2,3], 0, (acc,x) -> acc + x) → 6
ARRAY_AGGREGATE使用函数聚合数组元素ARRAY_AGGREGATE([1,2,3], 'sum') → 6

数组聚合与统计

函数描述示例
ARRAY_SUM数值之和ARRAY_SUM([1,2,3]) → 6
ARRAY_AVG数值平均值ARRAY_AVG([1,2,3]) → 2
ARRAY_MEDIAN数值中位数ARRAY_MEDIAN([1,3,2]) → 2
ARRAY_MIN最小值ARRAY_MIN([3,1,2]) → 1
ARRAY_MAX最大值ARRAY_MAX([3,1,2]) → 3
ARRAY_STDDEV_POP总体标准差(别名:ARRAY_STD)ARRAY_STDDEV_POP([1,2,3])
ARRAY_STDDEV_SAMP样本标准差(别名:ARRAY_STDDEV)ARRAY_STDDEV_SAMP([1,2,3])
ARRAY_KURTOSIS值的超额峰度ARRAY_KURTOSIS([1,2,3,4])
ARRAY_SKEWNESS值的偏度ARRAY_SKEWNESS([1,2,3,4])
ARRAY_APPROX_COUNT_DISTINCT近似去重计数ARRAY_APPROX_COUNT_DISTINCT([1,1,2]) → 2

数组格式化

函数描述示例
ARRAY_TO_STRING将数组元素连接为字符串ARRAY_TO_STRING(['a','b'], ',') → 'a,b'

数组实用函数

函数描述示例
ARRAY_COMPACT从数组中移除空值ARRAY_COMPACT([1,null,2,null,3]) → [1,2,3]
ARRAY_FLATTEN将嵌套数组展平为单个数组ARRAY_FLATTEN([[1,2],[3,4]]) → [1,2,3,4]
ARRAY_REVERSE反转数组元素的顺序ARRAY_REVERSE([1,2,3]) → [3,2,1]
ARRAY_INDEXOF返回元素首次出现的索引ARRAY_INDEXOF([1,2,3,2], 2) → 1
UNNEST将数组展开为单独的行UNNEST([1,2,3]) → 1, 2, 3(作为单独的行)

文档内容是否有帮助?