ARRAY_POSITIONS
📄字数 543
👁️阅读量 加载中...
功能描述
在一个数组中查找指定元素所有出现位置。它返回该元素的下标(从1开始),如果元素不存在于数组中,则返回 NULL。
注意
此函数仅支持在一维数组中使用。
ARRAY_POSITION返回元素第一次出现位置的下标,ARRAY_POSITIONS返回所有匹配元素的下标(从1开始)。
ARRAY数据类型的详细信息请参见《SQL语法参考指南》的数组类型章节。
语法格式
sql
ARRAY_POSITIONS(anycompatiblearray, anycompatible)输入参数
anycompatiblearray:要查找的数组,ARRAY类型数据。anycompatible:要查找的元素。该元素的类型必须与数组中的元素类型兼容。
输出结果
INTEGER[]类型(整数数组),元素的下标集合。
执行类型
| TYPE | VALUE | 说明 |
|---|---|---|
| NATIVE | 0 | 函数只能在本地计算 |
| VOLATI | 0 | 函数的每次计算值不同 |
| STABLE | 0 | 函数的每次计算值相同 |
| COMPUTE | 0 | 函数支持预计算取值 |
| NOT_CONST | 0 | 函数不支持转常数 |
| HAVE_DEF | 0 | 函数参数有默认值 |
示例
sql
-- 查找指定元素`'mon'`在数组中的位置
SQL> SELECT ARRAY_POSITIONS(ARRAY['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'mon'], 'mon');
+-------+
| EXPR1 |
+-------+
| {2,8} |
+-------+