Presto--数组函数和运算符

数组函数和运算符

脚标运算符:[]

[]用于访问一个数组的元素,并从1开始索引:

SELECT  my_array [ 1 ]  AS  first_element

连接运算符:||

||用来连接相同类型的数组或者元素:

SELECT  ARRAY  [ 1 ]  ||  ARRAY  [ 2 ];  -  [1,2] 
SELECT  ARRAY  [ 1 ]  ||  2 ;  -  [1,2] 
SELECT  2  ||  ARRAY  [ 1 ];   -  [2,1]

数组函数

  • array_distinctx ) →数组

    从数组中删除重复的值x

  • array_intersectxy ) →数组

    返回xy的交集中的不重复元素。

  • array_unionxy ) →数组

    返回xy的并集中的不重复元素。

  • array_exceptxy ) →数组

    返回属于x但不属于y的不重复元素。(差集)

  • array_joinxdelimiternull_replacement ) →varchar

    使用delimiter界定符连接x给定数组的元素并且用null_replacement可选字符串来填充数组里面的空值。

  • array_maxx ) →x

    返回输入数组的最大值。

  • array_minx ) →x

    返回输入数组的最小值。

  • array_positionxelement) →bigint

    返回数组x中第一次出现元素element的位置(数字)(如果未找到,则返回0)。

  • array_removex元素) →数组

    删除数组x中和element相同的所有元素。

  • array_sortx ) →数组

    排序x并返回数组。x的元素必须是可排序的。空元素将放置在返回数组的末尾。

  • array_sortarray(T)function(TTint)) - > array(T

    array根据给定的比较函数function排序并返回。比较函数采用两个可空的参数来表示array两个可以为空的元素。当第一个可空元素小于,等于或大于第二个可空元素时,它返回-1,0或1。如果比较函数返回其他值(包括NULL),则查询将失败并引发错误

SELECT array_sort(ARRAY [3, 2, 5, 1, 2], (x, y) -> IF(x < y, 1, IF(x = y, 0, -1))); -- [5, 3, 2, 2, 1]
SELECT array_sort(ARRAY ['bc', 'ab', 'dc'], (x, y) -> IF(x < y, 1, IF(x = y, 0, -1))); -- ['dc', 'bc', 'ab']
SELECT array_sort(ARRAY [3, 2, null, 5, null, 1, 2], -- sort null first with descending order
                  (x, y) -> CASE WHEN x IS NULL THEN -1
                                 WHEN y IS NULL THEN<
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值