类别:

半结构化和结构化数据函数 (数组/对象)

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> )
Copy

实参

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);
Copy
+---------------------------------------------+
| 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);
Copy
+-------------------------+
| ARRAY_REMOVE([5, 5], 5) |
|-------------------------|
| []                      |
+-------------------------+

下面的示例从 ARRAY 中移除值为 'a' 的元素。如示例中所示,必须将值转换为 VARIANT。

SELECT ARRAY_REMOVE(
  ['a', 'b', 'a', 'c', 'd', 'a'],
  'a'::VARIANT);
Copy
+-----------------------------------+
| ARRAY_REMOVE(                     |
|   ['A', 'B', 'A', 'C', 'D', 'A'], |
|   'A'::VARIANT)                   |
|-----------------------------------|
| [                                 |
|   "b",                            |
|   "c",                            |
|   "d"                             |
| ]                                 |
+-----------------------------------+
语言: 中文