计算两个ARRAY数组的交集。
命令格式
array<T> array_intersect(array<T> <a>, array<T> <b>)
命令说明
计算ARRAY数组a和b的交集,并去掉重复元素。
参数说明
a、b:必填。ARRAY数组。array<T>
中的T
指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。a和b的数据类型必须保持一致。
返回值说明
返回ARRAY类型。返回规则如下:
- ARRAY数组中存在元素为NULL时,NULL值会参与运算。
- 新ARRAY数组无重复元素且元素顺序与a中的元素顺序保持一致。
- 如果ARRAY数组a或b为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));