更新时间:2024-07-25 GMT+08:00
分享

数组函数

本文介绍数组函数的语法规则,包括参数解释、函数示例等。

函数列表

表1 数组函数

函数

描述

array函数

将输入的参数构造成数组,参数类型必须相同。

array_position函数

获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。

cardinality函数

计算数组中元素的个数。

mv_length函数

计算数组中元素的个数, 同cardinality。

contains函数

判断数组中是否包含指定元素。如果包含,则返回true。

mv_contains函数

判断数组中是否包含指定元素。如果包含,则返回true,同contains。

mv_prepend函数

将指定的元素添加到数组的开始位置。

mv_append函数

将指定的元素添加到数组的末尾。

mv_slice函数

返回从start到end索引的数组。

mv_to_string函数

通过str指定分隔符连接arr所有元素。

string_to_mv函数

使用指定的分隔符str2将str1拆分为数组

mv_offset函数

返回所提供的基于0的索引处的数组元素。

mv_ordinal函数

返回所提供的基于1的索引处的数组元素。

mv_offset_of函数

返回数组中第一次出现expr的基于0的索引,如果未出现,则返回-1。

mv_ordinal_of函数

返回数组中第一次出现expr的基于1的索引,如果未出现,则返回-1。

array函数

将参数构建成数组,参数类型必须相同。

语法:array[expr1,expr ...]

表2 参数说明

参数名称

描述

类型

是否必选

expr

原始数据

String/Integer/Long/Double/Float

返回值类型:Array类型

示例:SELECT ARRAY['1','2','3','4','5']

表3 查询分析结果

类型

场景

查询语句

ARRAY['1','2','3','4','5']

返回结果

["1", "2", "3", "4", "5"]

array_position函数

获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。

语法:array_position(expr, ele)

表4 参数说明

参数名称

描述

类型

是否必选

expr

原始数组

数组类型。

ele

指定的元素

数组中的一个元素,必须与数组中元素类型相同。

返回值类型:Integer类型

示例:SELECT ARRAY_POSITION(ARRAY['1','2','3'],'2')

表5 查询分析结果

类型

场景

查询语句

ARRAY_POSITION(ARRAY['1','2','3'],'2')

返回结果

2

cardinality函数

计算数组中元素的个数,参数类型必须相同。

语法:cardinality(expr)

表6 参数说明

参数名称

描述

类型

是否必选

expr

原始数组

Array(String/Number)

返回值类型:Integer类型

示例:SELECT CARDINALITY(ARRAY['1','2','3'])

表7 查询分析结果

类型

场景

查询语句

CARDINALITY(ARRAY['1','2','3'])

返回结果

3

mv_length函数

计算数组中元素的个数, 同cardinality。

语法:mv_length(expr)

表8 参数说明

参数名称

描述

类型

是否必选

expr

原始数组

Array(String/Number)

返回值类型:Integer类型

示例:SELECT MV_LENGTH(ARRAY['1','2','3'])

表9 查询分析结果

类型

场景

查询语句

MV_LENGTH (ARRAY['1','2','3'])

返回结果

3

contains函数

判断数组中是否包含指定元素。如果包含,则返回true。

语法:contains(expr, ele)

表10 参数说明

参数名称

描述

类型

是否必选

expr

原始数组

Array(String/Number)

ele

指定的元素

String/Number,必须与数组中元素类型相同。

返回值类型:Boolean类型

示例:SELECT CONTAINS(ARRAY['1','2'],'1')

表11 查询分析结果

类型

场景

查询语句

CONTAINS(ARRAY['1','2'],'1')

返回结果

true

mv_contains函数

判断数组中是否包含指定元素。如果包含,则返回true,同contains。

语法:mv_contains(expr, ele)

表12 参数说明

参数名称

描述

类型

是否必选

expr

原始数组

Array(String/Number)

ele

指定的元素

String/Number,必须与数组中元素类型相同。

返回值类型:Boolean类型

示例:SELECT MV_CONTAINS(ARRAY['1','2'],'1')

表13 查询分析结果

类型

场景

查询语句

MV_CONTAINS(ARRAY['1','2'],'1')

返回结果

true

mv_prepend函数

将指定的元素添加到数组的开始位置。

语法:mv_prepend(expr, arr)

表14 参数说明

参数名称

描述

类型

是否必选

expr

指定的元素

String/Number,必须与数组中元素类型相同。

arr

原始数组

Array(String/Number)

返回值类型:Array类型

示例:SELECT MV_PREPEND('1', ARRAY ['1','2'])

表15 查询分析结果

类型

场景

查询语句

MV_PREPEND ('1', ARRAY['1','2'])

返回结果

["1","1","2"]

mv_append函数

将指定的元素添加到数组的末尾。

语法:mv_append(arr, expr)

表16 参数说明

参数名称

描述

类型

是否必选

arr

原始数组

Array(String/Number)

expr

指定的元素

String/Number,必须与数组中元素类型相同。

返回值类型:Array类型

示例:SELECT MV_APPEND(ARRAY['1','2'],'1')

表17 查询分析结果

类型

场景

查询语句

MV_APPEND(ARRAY['1','2'], '1')

返回结果

["1","2","1"]

mv_slice函数

返回从start到end索引的数组。

语法:mv_slice(arr, start, end)

表18 参数说明

参数名称

描述

类型

是否必选

arr

原始数组

Array(String/Number)

start

起始位置

Integer

end

结束位置

Integer

返回值类型:Array类型

示例:SELECT MV_SLICE(ARRAY['1','2','3','4','5'], 2, 4)

表19 查询分析结果

类型

场景

查询语句

MV_SLICE(ARRAY['1','2','3','4','5'], 2, 4)

返回结果

["3","4"]

mv_to_string函数

使用指定的分隔符str连接arr所有元素。

语法:mv_to_string(arr, str)

表20 参数说明

参数名称

描述

类型

是否必选

arr

原始数组

Array(String/Number)

str

指定字符

String

返回值类型:String类型

示例:SELECT MV_TO_STRING(ARRAY['1','2','3','4','5'],'-')

表21 查询分析结果

类型

场景

查询语句

MV_TO_STRING(ARRAY['1','2','3','4','5'],'-')

返回结果

1-2-3-4-5

string_to_mv函数

使用指定的分隔符str2将str1拆分为数组。

语法:string_to_mv(str1, str2)

表22 参数说明

参数名称

描述

类型

是否必选

str1

原始字符串

String

str2

指定字符

String

返回值类型:Array类型

示例:SELECT STRING_TO_MV('1-2-3-4-5','-')

表23 查询分析结果

类型

场景

查询语句

STRING_TO_MV('1-2-3-4-5','-')

返回结果

["1","2","3","4","5"]

mv_offset函数

返回所提供的基于0的索引处的数组元素,或对于超出范围的索引返回null。

语法:mv_offset(arr, index)

表24 参数说明

参数名称

描述

类型

是否必选

arr

原始数组

Array(String/Number)

index

指定索引位置

Integer

返回值类型:String/Integer/Long/Boolean/Double类型

示例:SELECT MV_OFFSET(ARRAY['1','2','3','4','5'], 2)

表25 查询分析结果

类型

场景

查询语句

MV_OFFSET(ARRAY['1','2','3','4','5'], 2)

返回结果

3

mv_ordinal函数

返回所提供的基于1的索引处的数组元素,或对于超出范围的索引返回null。

语法:mv_ordinal(arr, index)

表26 参数说明

参数名称

描述

类型

是否必选

arr

原始数组

Array(String/Number)

index

指定索引位置

Integer

返回值类型:String/Integer/Long/Boolean/Double类型

示例:SELECT MV_ORDINAL(ARRAY['1','2','3','4','5'], 2)

表27 查询分析结果

类型

场景

查询语句

MV_ORDINAL (ARRAY['1','2','3','4','5'], 2)

返回结果

2

mv_offset_of函数

返回数组中第一次出现expr的基于0的索引,如果未出现,则返回-1。

语法:mv_offset_of(arr, expr)

表28 参数说明

参数名称

描述

类型

是否必选

arr

原始数组

Array(String/Number)

expr

指定元素

String/Number,必须与数组中元素类型相同。

返回值类型:Integer类型

示例:SELECT MV_OFFSET_OF(ARRAY['1','2','3','4','5'], '2')

表29 查询分析结果

类型

场景

查询语句

MV_OFFSET_OF(ARRAY['1','2','3','4','5'], '2')

返回结果

1

mv_ordinal_of函数

返回数组中第一次出现expr的基于1的索引,如果未出现,则返回-1。

语法:mv_ordinal_of(arr, expr)

表30 参数说明

参数名称

描述

类型

是否必选

arr

原始数组

Array(String/Number)

expr

指定元素

String/Number,必须与数组中元素类型相同。

返回值类型:Integer类型

示例:SELECT MV_ORDINAL_OF(ARRAY['1','2','3','4','5'], '2')

表31 查询分析结果

类型

场景

查询语句

MV_ORDINAL_OF(ARRAY['1','2','3','4','5'], '2')

返回结果

2

相关文档