文档

ARRAY_DISTINCT

更新时间:

去除ARRAY数组a中的重复元素。

命令格式

array<T> array_distinct(array<T> <a>)

参数说明

a:必填。ARRAY数组。array<T>中的T指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。

返回值说明

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

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

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

  • 输入数组为空时,返回空数组。

使用示例

  • 示例1:去除ARRAY数组array(10, 20, 30, 30, 20, 10)中的重复元素。命令示例如下。

    --返回[10,20,30]。
    select array_distinct(array(10, 20, 30, 30, 20, 10));
  • 示例2:去除ARRAY数组array(10, 20, 20, null, null, 30, 20, null)中的重复元素。命令示例如下。

    --返回[10,20,null,30]。
    select array_distinct(array(10, 20, 20, null, null, 30, 20, null)); 
  • 示例3:ARRAY数组为空。命令示例如下。

    --返回[]。
    select array_distinct(array());

相关函数

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