文章目录
1. Array 增删改查
1.1 声明 Array 数据类型
- 语法:
array<基本数据类型>
注意是<>
,不是()
- 例子: 1. 创建表时:
create table temp_db.array_test ( id int comment '源数据主键id', year_arr array<string> comment '数组记录,年份', score_arr array<string> comment '数组记录,分数');
2. 字段填充时:cast(null as array<string>) as XXX
1.2 增
insert into temp_db.array_test (id,year_arr,score_arr)
select 12,array('1991','1990','1989'),array('56','20','23');
1.3 删
没有删除,只能覆盖
1.4 改
array_name[2] = 'xxxx'
1.5 查
select array_name[2] ;
注意:数组越界会报错。
2. Array 相关函数
2.1 数组
array()
:创建一个数组。例如,array(1,2,3)将创建一个包含1、2、3三个元素的数组。array_max(array)
:返回数组中的最大值。例如,array_max(array(1,2,3))将返回3。array_min(array)
:返回数组中的最小值。例如,array_min(array(1,2,3))将返回1。array_join(array, delimiter)
:使用指定的分隔符将数组中的元素连接成一个字符串。例如,6. array_join(array(1,2,3), ‘,’)将返回字符串"1,2,3"。【这个不常用,通常用concat_ws函数
】array_sort(array)
:返回一个按升序排序的数组。例如,array_sort(array(3,1,2))将返回数组(1,2,3)。
2.2 数组与元素
array_contains(array, value)
:判断数组中是否包含指定的值。例如,array_contains(array(1,2,3), 2)将返回true。array_position(array, value)
:返回value在数组中的位置,如果不存在则返回0。例如,array_position(array(1,2,3), 2)将返回2。array_remove(array, value)
:返回一个包含所有不等于value的元素的数组。例如,array_remove(array(1,2,3), 2)将返回数组(1,3)。- 访问元素:直接使用 [] 来取得数组元素,例如:
a[1]``````SELECTsplit('ab_cd_ef', '_')[1];
> 注意:如果数组元素为空或索引超出范围,则返回 NULL。
2.3 两个数组
array_except(array1, array2)
:返回一个包含所有在array1中但不在array2中的元素的数组。例如,array_except(array(1,2,3), array(2,4))将返回数组(1,3)。array_intersect(array1, array2)
:返回一个包含所有同时在array1和array2中的元素的数组。例如,array_intersect(array(1,2,3), array(2,3,4))将返回数组(2,3)。
本文转载自: https://blog.csdn.net/qq_43546676/article/details/131174197
版权归原作者 ElegantCodingWH 所有, 如有侵权,请联系我们删除。
版权归原作者 ElegantCodingWH 所有, 如有侵权,请联系我们删除。