ARRAY_POSITION
更新时间:2025-10-17
描述
返回value在数组中第一次出现的位置/索引。
语法
SQL
1ARRAY_POSITION(<arr>, <vaule>)
参数
| 参数 | 说明 |
|---|---|
<arr> |
ARRAY 数组 |
<vaule> |
待查询的元素 |
返回值
value 在 arr 中的位置(从 1 开始计算)。特殊情况:
- 0,如果 value 在 arr 中不存在;
- NULL,如果数组为 NULL。
举例
SQL
1CREATE TABLE array_test (
2 id INT,
3 c_array ARRAY<INT>,
4 array_position INT
5)
6 duplicate key (id)
7distributed by hash(id) buckets 1
8properties(
9 'replication_num' = '1'
10);
11INSERT INTO array_test (id, c_array, array_position) VALUES
12 (1, [1, 2, 3, 4, 5], 5),
13 (2, [6, 7, 8], 0),
14 (3, [], 0),
15 (4, NULL, NULL);
16SELECT id,c_array,array_position(c_array, 5) FROM `array_test`;
Text
1+------+-----------------+------------------------------+
2| id | c_array | array_position(`c_array`, 5) |
3+------+-----------------+------------------------------+
4| 1 | [1, 2, 3, 4, 5] | 5 |
5| 2 | [6, 7, 8] | 0 |
6| 3 | [] | 0 |
7| 4 | NULL | NULL |
8+------+-----------------+------------------------------+
SQL
1select array_position([1, null], null);
Text
1+--------------------------------------+
2| array_position(ARRAY(1, NULL), NULL) |
3+--------------------------------------+
4| 2 |
5+--------------------------------------+
