0


【Hive】HQL Array 『CRUD | 相关函数』

文章目录

1. Array 增删改查

1.1 声明 Array 数据类型

  1. 语法:array<基本数据类型> 注意是<>,不是()
  2. 例子: 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 数组

  1. array():创建一个数组。例如,array(1,2,3)将创建一个包含1、2、3三个元素的数组。
  2. array_max(array):返回数组中的最大值。例如,array_max(array(1,2,3))将返回3。
  3. array_min(array):返回数组中的最小值。例如,array_min(array(1,2,3))将返回1。
  4. array_join(array, delimiter):使用指定的分隔符将数组中的元素连接成一个字符串。例如,6. array_join(array(1,2,3), ‘,’)将返回字符串"1,2,3"。【这个不常用,通常用concat_ws函数
  5. array_sort(array):返回一个按升序排序的数组。例如,array_sort(array(3,1,2))将返回数组(1,2,3)。

2.2 数组与元素

  1. array_contains(array, value):判断数组中是否包含指定的值。例如,array_contains(array(1,2,3), 2)将返回true。
  2. array_position(array, value):返回value在数组中的位置,如果不存在则返回0。例如,array_position(array(1,2,3), 2)将返回2。
  3. array_remove(array, value):返回一个包含所有不等于value的元素的数组。例如,array_remove(array(1,2,3), 2)将返回数组(1,3)。
  4. 访问元素:直接使用 [] 来取得数组元素,例如:a[1]``````SELECTsplit('ab_cd_ef', '_')[1];> 注意:如果数组元素为空或索引超出范围,则返回 NULL。

2.3 两个数组

  1. array_except(array1, array2):返回一个包含所有在array1中但不在array2中的元素的数组。例如,array_except(array(1,2,3), array(2,4))将返回数组(1,3)。
  2. array_intersect(array1, array2):返回一个包含所有同时在array1和array2中的元素的数组。例如,array_intersect(array(1,2,3), array(2,3,4))将返回数组(2,3)。
标签: sql 数据库

本文转载自: https://blog.csdn.net/qq_43546676/article/details/131174197
版权归原作者 ElegantCodingWH 所有, 如有侵权,请联系我们删除。

“【Hive】HQL Array 『CRUD | 相关函数』”的评论:

还没有评论