全部產品
Search
文件中心

MaxCompute:ARRAY_INTERSECT

更新時間:Jun 19, 2024

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資料)的處理函數請參見複雜類型函數