- 类别:
半结构化和结构化数据函数 (数组/对象)
ARRAY_REMOVE¶
给定源 ARRAY,返回一个 ARRAY,其中包含已移除的指定值元素。
例如,ARRAY_REMOVE([2, 5, 7, 5, 1], 5)
返回一个 ARRAY 已移除等于 5 的元素 ([2, 7, 1]
)。
语法¶
ARRAY_REMOVE( <array> , <value_of_elements_to_remove> )
实参¶
array
源数组。
value_of_elements_to_remove
要移除元素的 VARIANT 值。该函数会移除等于此值的元素。
如果指定 VARCHAR 值,则必须先将该值转换为 VARIANT。
返回¶
移除所有等于指定值的元素的 ARRAY。
如果 value_of_elements_to_remove
为 NULL,则函数返回 NULL。
使用说明¶
如果
array
中的所有元素都等于value_of_elements_to_remove
,则函数返回空 ARRAY。
示例¶
下面的示例返回一个 ARRAY,其中值为 5 的元素被移除。
SELECT ARRAY_REMOVE(
[1, 5, 5.00, 5.00::DOUBLE, '5', 5, NULL],
5);
+---------------------------------------------+
| ARRAY_REMOVE( |
| [1, 5, 5.00, 5.00::DOUBLE, '5', 5, NULL], |
| 5) |
|---------------------------------------------|
| [ |
| 1, |
| "5", |
| undefined |
| ] |
+---------------------------------------------+
下面的示例从仅包含值为 5 的元素的 ARRAY 中移除值为 5 的元素。该函数返回一个空 ARRAY:
SELECT ARRAY_REMOVE([5, 5], 5);
+-------------------------+
| ARRAY_REMOVE([5, 5], 5) |
|-------------------------|
| [] |
+-------------------------+
下面的示例从 ARRAY 中移除值为 'a'
的元素。如示例中所示,必须将值转换为 VARIANT。
SELECT ARRAY_REMOVE(
['a', 'b', 'a', 'c', 'd', 'a'],
'a'::VARIANT);
+-----------------------------------+
| ARRAY_REMOVE( |
| ['A', 'B', 'A', 'C', 'D', 'A'], |
| 'A'::VARIANT) |
|-----------------------------------|
| [ |
| "b", |
| "c", |
| "d" |
| ] |
+-----------------------------------+