ARRAY_INTERSECT

MaxCompute ARRAY_INTERSECT函数用于计算两个ARRAY数组之间的交集,并返回一个包含两个数组中都存在的相同值的新数组。本文为您介绍ARRAY_INTERSECT函数的命令格式、参数说明以及使用示例。

命令格式

array<T> array_intersect(array<T> <a>, array<T> <b>) 

参数说明

ab:必填。ARRAY数组。array<T>中的T指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。ab的数据类型必须保持一致。

返回值说明

返回ARRAY类型。返回规则如下:

  • ARRAY数组中存在元素为NULL时,NULL值会参与运算。

  • 新ARRAY数组无重复元素且元素顺序与a中的元素顺序保持一致。

  • 如果ARRAY数组ab为NULL,返回NULL。

使用示例

  • 示例1:计算ARRAY数组array(1, 2, 3)array(1, 3, 5)的交集,并去掉重复元素。命令示例如下。

    --返回[1,3]。
    select array_intersect(array(1, 2, 3), array(1, 3, 5));
  • 示例2:计算ARRAY数组array(10, 20, 20, 30, 30, null, null)array(30, 30, 20, 20, 40, null, null)的交集,并去掉重复元素。命令示例如下。

    --返回[20,30,null]。
    select array_intersect(array(10, 20, 20, 30, 30, null, null), array(30, 30, 20, 20, 40, null, null)); 

相关函数

ARRAY_INTERSECT函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数