数组函数
本文介绍数组函数的语法规则,包括参数解释、函数示例等。
函数列表
函数 |
描述 |
---|---|
将输入的参数构造成数组,参数类型必须相同。 |
|
获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。 |
|
计算数组中元素的个数。 |
|
计算数组中元素的个数, 同cardinality。 |
|
判断数组中是否包含指定元素。如果包含,则返回true。 |
|
判断数组中是否包含指定元素。如果包含,则返回true,同contains。 |
|
将指定的元素添加到数组的开始位置。 |
|
将指定的元素添加到数组的末尾。 |
|
返回从start到end索引的数组。 |
|
通过str指定分隔符连接arr所有元素。 |
|
使用指定的分隔符str2将str1拆分为数组 |
|
返回所提供的基于0的索引处的数组元素。 |
|
返回所提供的基于1的索引处的数组元素。 |
|
返回数组中第一次出现expr的基于0的索引,如果未出现,则返回-1。 |
|
返回数组中第一次出现expr的基于1的索引,如果未出现,则返回-1。 |
array函数
将参数构建成数组,参数类型必须相同。
语法:array[expr1,expr ...]
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
原始数据 |
String/Integer/Long/Double/Float |
是 |
返回值类型:Array类型
示例:SELECT ARRAY['1','2','3','4','5']
类型 |
场景 |
---|---|
查询语句 |
ARRAY['1','2','3','4','5'] |
返回结果 |
["1", "2", "3", "4", "5"] |
array_position函数
获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。
语法:array_position(expr, ele)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
原始数组 |
数组类型。 |
是 |
ele |
指定的元素 |
数组中的一个元素,必须与数组中元素类型相同。 |
是 |
返回值类型:Integer类型
示例:SELECT ARRAY_POSITION(ARRAY['1','2','3'],'2')
类型 |
场景 |
---|---|
查询语句 |
ARRAY_POSITION(ARRAY['1','2','3'],'2') |
返回结果 |
2 |
cardinality函数
计算数组中元素的个数,参数类型必须相同。
语法:cardinality(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
原始数组 |
Array(String/Number) |
是 |
返回值类型:Integer类型
示例:SELECT CARDINALITY(ARRAY['1','2','3'])
类型 |
场景 |
---|---|
查询语句 |
CARDINALITY(ARRAY['1','2','3']) |
返回结果 |
3 |
mv_length函数
计算数组中元素的个数, 同cardinality。
语法:mv_length(expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
原始数组 |
Array(String/Number) |
是 |
返回值类型:Integer类型
示例:SELECT MV_LENGTH(ARRAY['1','2','3'])
类型 |
场景 |
---|---|
查询语句 |
MV_LENGTH (ARRAY['1','2','3']) |
返回结果 |
3 |
contains函数
判断数组中是否包含指定元素。如果包含,则返回true。
语法:contains(expr, ele)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
原始数组 |
Array(String/Number) |
是 |
ele |
指定的元素 |
String/Number,必须与数组中元素类型相同。 |
是 |
返回值类型:Boolean类型
示例:SELECT CONTAINS(ARRAY['1','2'],'1')
类型 |
场景 |
---|---|
查询语句 |
CONTAINS(ARRAY['1','2'],'1') |
返回结果 |
true |
mv_contains函数
判断数组中是否包含指定元素。如果包含,则返回true,同contains。
语法:mv_contains(expr, ele)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
原始数组 |
Array(String/Number) |
是 |
ele |
指定的元素 |
String/Number,必须与数组中元素类型相同。 |
是 |
返回值类型:Boolean类型
示例:SELECT MV_CONTAINS(ARRAY['1','2'],'1')
类型 |
场景 |
---|---|
查询语句 |
MV_CONTAINS(ARRAY['1','2'],'1') |
返回结果 |
true |
mv_prepend函数
将指定的元素添加到数组的开始位置。
语法:mv_prepend(expr, arr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
expr |
指定的元素 |
String/Number,必须与数组中元素类型相同。 |
是 |
arr |
原始数组 |
Array(String/Number) |
是 |
返回值类型:Array类型
示例:SELECT MV_PREPEND('1', ARRAY ['1','2'])
类型 |
场景 |
---|---|
查询语句 |
MV_PREPEND ('1', ARRAY['1','2']) |
返回结果 |
["1","1","2"] |
mv_append函数
将指定的元素添加到数组的末尾。
语法:mv_append(arr, expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
arr |
原始数组 |
Array(String/Number) |
是 |
expr |
指定的元素 |
String/Number,必须与数组中元素类型相同。 |
是 |
返回值类型:Array类型
示例:SELECT MV_APPEND(ARRAY['1','2'],'1')
类型 |
场景 |
---|---|
查询语句 |
MV_APPEND(ARRAY['1','2'], '1') |
返回结果 |
["1","2","1"] |
mv_slice函数
返回从start到end索引的数组。
语法:mv_slice(arr, start, end)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
arr |
原始数组 |
Array(String/Number) |
是 |
start |
起始位置 |
Integer |
是 |
end |
结束位置 |
Integer |
是 |
返回值类型:Array类型
示例:SELECT MV_SLICE(ARRAY['1','2','3','4','5'], 2, 4)
类型 |
场景 |
---|---|
查询语句 |
MV_SLICE(ARRAY['1','2','3','4','5'], 2, 4) |
返回结果 |
["3","4"] |
mv_to_string函数
使用指定的分隔符str连接arr所有元素。
语法:mv_to_string(arr, str)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
arr |
原始数组 |
Array(String/Number) |
是 |
str |
指定字符 |
String |
是 |
返回值类型:String类型
示例:SELECT MV_TO_STRING(ARRAY['1','2','3','4','5'],'-')
类型 |
场景 |
---|---|
查询语句 |
MV_TO_STRING(ARRAY['1','2','3','4','5'],'-') |
返回结果 |
1-2-3-4-5 |
string_to_mv函数
使用指定的分隔符str2将str1拆分为数组。
语法:string_to_mv(str1, str2)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
str1 |
原始字符串 |
String |
是 |
str2 |
指定字符 |
String |
是 |
返回值类型:Array类型
示例:SELECT STRING_TO_MV('1-2-3-4-5','-')
类型 |
场景 |
---|---|
查询语句 |
STRING_TO_MV('1-2-3-4-5','-') |
返回结果 |
["1","2","3","4","5"] |
mv_offset函数
返回所提供的基于0的索引处的数组元素,或对于超出范围的索引返回null。
语法:mv_offset(arr, index)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
arr |
原始数组 |
Array(String/Number) |
是 |
index |
指定索引位置 |
Integer |
是 |
返回值类型:String/Integer/Long/Boolean/Double类型
示例:SELECT MV_OFFSET(ARRAY['1','2','3','4','5'], 2)
类型 |
场景 |
---|---|
查询语句 |
MV_OFFSET(ARRAY['1','2','3','4','5'], 2) |
返回结果 |
3 |
mv_ordinal函数
返回所提供的基于1的索引处的数组元素,或对于超出范围的索引返回null。
语法:mv_ordinal(arr, index)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
arr |
原始数组 |
Array(String/Number) |
是 |
index |
指定索引位置 |
Integer |
是 |
返回值类型:String/Integer/Long/Boolean/Double类型
示例:SELECT MV_ORDINAL(ARRAY['1','2','3','4','5'], 2)
类型 |
场景 |
---|---|
查询语句 |
MV_ORDINAL (ARRAY['1','2','3','4','5'], 2) |
返回结果 |
2 |
mv_offset_of函数
返回数组中第一次出现expr的基于0的索引,如果未出现,则返回-1。
语法:mv_offset_of(arr, expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
arr |
原始数组 |
Array(String/Number) |
是 |
expr |
指定元素 |
String/Number,必须与数组中元素类型相同。 |
是 |
返回值类型:Integer类型
示例:SELECT MV_OFFSET_OF(ARRAY['1','2','3','4','5'], '2')
类型 |
场景 |
---|---|
查询语句 |
MV_OFFSET_OF(ARRAY['1','2','3','4','5'], '2') |
返回结果 |
1 |
mv_ordinal_of函数
返回数组中第一次出现expr的基于1的索引,如果未出现,则返回-1。
语法:mv_ordinal_of(arr, expr)
参数名称 |
描述 |
类型 |
是否必选 |
---|---|---|---|
arr |
原始数组 |
Array(String/Number) |
是 |
expr |
指定元素 |
String/Number,必须与数组中元素类型相同。 |
是 |
返回值类型:Integer类型
示例:SELECT MV_ORDINAL_OF(ARRAY['1','2','3','4','5'], '2')
类型 |
场景 |
---|---|
查询语句 |
MV_ORDINAL_OF(ARRAY['1','2','3','4','5'], '2') |
返回结果 |
2 |