ARRAY_POSITION 函数:查找 NULL 值的位置发生变更

注意

此行为变更在 2023_01 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

当您调用 ARRAY_POSITION 函数并将一个值作为第一个实参传入时,该函数将返回包含该值的第一个 ARRAY 元素的位置。

当您指定 NULL 为第一个实参时,ARRAY_POSITION 函数发生变更:

之前:

该函数返回了 NULL。例如:

SELECT ARRAY_POSITION(NULL, [10, NULL, 30]);

+--------------------------------------+
| ARRAY_POSITION(NULL, [10, NULL, 30]) |
|--------------------------------------|
|                                 NULL |
+--------------------------------------+
Copy
现在:

该函数返回 ARRAY 中第一个 NULL 的位置。例如:

SELECT ARRAY_POSITION(NULL, [10, NULL, 30]);
+--------------------------------------+
| ARRAY_POSITION(NULL, [10, NULL, 30]) |
|--------------------------------------|
|                                    1 |
+--------------------------------------+
Copy

实现此更改是为了与 ARRAY_CONTAINS 函数保持一致。当您使用 ARRAY_CONTAINS 函数确定 ARRAY 是否包含 NULL 时,该函数将返回 TRUE。

参考号:882

语言: 中文