在ARRAY数组a中删除与element相等的元素。
命令格式
array<T> array_remove(array<T> <a>, T <element>)
参数说明
a:必填。ARRAY数组。
array<T>
中的T
指代ARRAY数组元素的数据类型。支持的数据类型如下:TINYINT、SMALLINT、INT、BIGINT
FLOAT、DOUBLE
BOOLEAN
DECIMAL、DECIMALVAL
DATE、DATETIME、TIMESTAMP、IntervalDayTime、IntervalYearMonth
STRING、BINARY、VARCHAR、CHAR
ARRAY、STRUCT、MAP
element:必填。待删除的元素,数据类型必须与a中元素的数据类型相同。
返回值说明
返回ARRAY类型。返回规则如下:
如果ARRAY数组a中存在元素为NULL时,NULL值不参与运算。
如果ARRAY数组a或element为NULL,返回NULL。
ARRAY数组a中不存在element时返回原ARRAY数组a。
使用示例
示例1:删除ARRAY数组
array(3, 2, 1)
中等于1
的元素。命令示例如下。--返回[3,2]。 select array_remove(array(3, 2, 1), 1);
示例2:element为NULL。命令示例如下。
--返回NULL。 select array_remove(array(3, 1, null), null);
示例3:删除ARRAY数组
array(3, 1, null)
中等于2
的元素。命令示例如下。--返回[3,1,null]。 select array_remove(array(3, 1, null), 2);
相关函数
ARRAY_REMOVE函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数。