メインコンテンツまでスキップ
バージョン: 4.x

ARRAY_LAST_INDEX

説明

lambda式を入力パラメータとして使用し、他の入力ARRAY パラメータの内部データに対して対応する式の計算を実行します。lambda(array1[i], ...)の戻り値が0でない最後のインデックスを返します。そのようなインデックスが見つからない場合は0を返します。

lambda式には1つ以上のパラメータが入力され、すべての入力配列の要素数は同じである必要があります。lambdaでは正当なスカラー関数を実行できますが、集約関数などはサポートされていません。

構文

ARRAY_LAST_INDEX(<lambda>, <arr> [, ...])

パラメータ

Parameterデスクリプション
<lambda>入力パラメータが指定された配列の列数と一致する必要があるlambda式。この式は有効なスカラー関数を実行できますが、集計関数はサポートしていません。
<arr>ARRAY配列

Return Value

最後の非ゼロ値のインデックスを返します。そのようなインデックスが見つからない場合は、0を返します。

Example

select array_last_index(x -> x is null, [null, null, 1, 2]);
+------------------------------------------------------------------------+
| array_last_index(array_map([x] -> x IS NULL, ARRAY(NULL, NULL, 1, 2))) |
+------------------------------------------------------------------------+
| 2 |
+------------------------------------------------------------------------+
select array_last_index(x->x='s', ['a', 's', 's', 's', 'b']);
+-----------------------------------------------------------------------------+
| array_last_index(array_map([x] -> x = 's', ARRAY('a', 's', 's', 's', 'b'))) |
+-----------------------------------------------------------------------------+
| 4 |
+-----------------------------------------------------------------------------+
select array_last_index(x->power(x,2)>10, [1, 4, 3, 4]);
+-----------------------------------------------------------------------------+
| array_last_index(array_map([x] -> power(x, 2.0) > 10.0, ARRAY(1, 4, 3, 4))) |
+-----------------------------------------------------------------------------+
| 4 |
+-----------------------------------------------------------------------------+
select col2, col3, array_last_index((x,y)->x>y, col2, col3) from array_test;
+--------------+--------------+---------------------------------------------------------------------+
| col2 | col3 | array_last_index(array_map([x, y] -> x(0) > y(1), `col2`, `col3`)) |
+--------------+--------------+---------------------------------------------------------------------+
| [1, 2, 3] | [3, 4, 5] | 0 |
| [1, NULL, 2] | [NULL, 3, 1] | 3 |
| [1, 2, 3] | [9, 8, 7] | 0 |
| NULL | NULL | 0 |
+--------------+--------------+---------------------------------------------------------------------+