1、array:array(val1, val2, ...)
说明:产生一个数组
select array(1,2,3)
2、int:array_size(array)
说明:返回一个数组的长度
select array(1,2,3) --3
3、boolean:array_contains(array, value)
说明:判断一个数组中是否包含某个值。返回值为 true 或 false
SELECT array_contains(array(1,2,3),2) --true
4、 array:array_sort(array),array:sort_array(array[, ascendingOrder])
说明:对一个数组进行排序,array_sort升序排序,sort_array可指定升降序,true为升序,false为降序
sort_array(array(2,1,3),ture) ---1,2,3
sort_array(array(2,1,3),false) ---3,2,1
array_sort(array(2,1,3)) ---1,2,3
5、array:array_except(array1, array2)
说明:返回 array1 中不在 array2 中的所有元素
SELECT array_except(array(1, 2, 3), array(1, 3, 5));
--[2]
6、array:array_intersect(array1, array2)
说明:返回两个数组的交集,即包含在两个数组中的所有元素
SELECT array_intersect(array(1, 2, 3), array(1, 3, 5));
--[1,3]
7、array:array_union(array1, array2)
说明:将两个数组合并成一个新的数组,不包含重复元素
SELECT array_union(array(1, 2, 3), array(1, 3, 5));
--[1,2,3,5]
8、string:array_join (array, delimiter[, nullReplacement])
说明:将一个数组转换成一个字符串,元素之间用 delimiter 分隔,如果有 null 值则用 nullReplacement 替代,如果没有设置nullReplacement过滤掉所有null值
SELECT array_join(array('hello', 'world'), ' ');
-- hello world
SELECT array_join(array('hello', null ,'world'), ' ');
-- hello world
SELECT array_join(array('hello', null ,'world'), ' ', ',');
-- hello , world
9、T:array_max(array)
说明:返回最大值,null值跳过
SELECT array_max(array(1, 20, null, 3));
--20
10、T:array_min(array)
说明:返回最小值,null值跳过
SELECT array_min(array(1, 20, null, 3));
--1
11、explode(array)
说明:将一个数组拆分成多行,每行包含一个数组元素。可以和 LATERAL VIEW 一起使用,用于对数组类型的字段进行拆分。
SELECT explode(array(10, 20));
--10
--20
12、posexplode(array)
说明:与 explode 类似,但返回的每行还包含一个表示数组下标的字段。
SELECT posexplode(array(10,20));
--0 10
--1 20