- 类别:
:doc:`/sql-reference/functions-semistructured`(数组/对象)
ARRAY_REMOVE_AT¶
给定源 ARRAY,返回一个 ARRAY,其中包含位于指定位置的已移除元素。
例如,ARRAY_REMOVE_AT([2, 5, 7], 0)
返回一个已移除位置 0 处的元素([5, 7]
)的 ARRAY。
语法¶
ARRAY_REMOVE_AT( <array> , <position> )
实参¶
array
源数组。
position
要移除的元素的(基于零的)位置。函数删除此位置的元素。
负位置被解释为数组后面的索引(例如
-1
表示移除数组中的最后一个元素)。
返回¶
移除了指定位置的元素的 ARRAY。
如果 position
为 NULL,则函数返回 NULL。
使用说明¶
如果
position
的绝对值超过array
的长度,则函数返回array
时不移除任何元素。
示例¶
下面的示例返回一个 ARRAY,其中包含已移除第一个元素的元素。
SELECT ARRAY_REMOVE_AT(
[2, 5, 7],
0);
+-------------------------------+
| ARRAY_REMOVE_AT([2, 5, 7], 0) |
|-------------------------------|
| [ |
| 5, |
| 7 |
| ] |
+-------------------------------+
下面的示例返回一个 ARRAY,其中包含已移除最后一个元素的元素。
SELECT ARRAY_REMOVE_AT(
[2, 5, 7],
-1);
+--------------------------------+
| ARRAY_REMOVE_AT([2, 5, 7], -1) |
|--------------------------------|
| [ |
| 2, |
| 5 |
| ] |
+--------------------------------+
在以下示例中,position
大于 ARRAY 的长度,因此函数返回 ARRAY 而不进行任何更改。
SELECT ARRAY_REMOVE_AT(
[2, 5, 7],
10);
+------------------+
| ARRAY_REMOVE_AT( |
| [2, 5, 7], |
| 10) |
|------------------|
| [ |
| 2, |
| 5, |
| 7 |
| ] |
+------------------+