ARRAY_POSITION Function: Changes to Finding the Position of a NULL Value¶
Attention
This behavior change is in the 2023_01 bundle.
For the current status of the bundle, refer to Bundle History.
When you call the ARRAY_POSITION function and pass in a value as the first argument, the function returns the position of the first ARRAY element with that value.
The ARRAY_POSITION function has changed when you specify NULL as the first argument:
- Previously:
The function returned NULL. For example:
SELECT ARRAY_POSITION(NULL, [10, NULL, 30]); +--------------------------------------+ | ARRAY_POSITION(NULL, [10, NULL, 30]) | |--------------------------------------| | NULL | +--------------------------------------+
- Currently:
The function returns the position of the first NULL in the ARRAY. For example:
SELECT ARRAY_POSITION(NULL, [10, NULL, 30]); +--------------------------------------+ | ARRAY_POSITION(NULL, [10, NULL, 30]) | |--------------------------------------| | 1 | +--------------------------------------+
This change was implemented for consistency with the ARRAY_CONTAINS function. When you use the ARRAY_CONTAINS function to determine if an ARRAY contains NULL, the function returns TRUE.
Ref: 882