カテゴリ:

半構造化データ関数 (配列/オブジェクト)

ARRAY_POSITION

配列内の要素に最初に現れるインデックスを返します。

構文

ARRAY_POSITION( <variant_expr> , <array> )

引数

variant_expr

この式は VARIANT 値に評価される必要があります。関数は、配列内でこの値が最初に現れる場所を検索します。

array

検索される配列です。

戻り値

返される値のデータ型は INTEGER です。

使用上の注意

  • 戻り値は1ベースではなく、0ベースです。つまり、 variant_expr が配列の最初の要素と一致する場合、この関数は1ではなく0を返します。

  • VARIANT 値が ARRAYに含まれていない場合、関数は NULLを返します。

以下の例は、この関数の使用方法を示しています。

SELECT ARRAY_POSITION('hello'::variant, array_construct('hello', 'hi'));
+------------------------------------------------------------------+
| ARRAY_POSITION('HELLO'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|------------------------------------------------------------------|
|                                                                0 |
+------------------------------------------------------------------+
SELECT ARRAY_POSITION('hi'::variant, array_construct('hello', 'hi'));
+---------------------------------------------------------------+
| ARRAY_POSITION('HI'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|---------------------------------------------------------------|
|                                                             1 |
+---------------------------------------------------------------+
SELECT ARRAY_POSITION('hello'::variant, array_construct('hola', 'bonjour'));
+----------------------------------------------------------------------+
| ARRAY_POSITION('HELLO'::VARIANT, ARRAY_CONSTRUCT('HOLA', 'BONJOUR')) |
|----------------------------------------------------------------------|
|                                                                 NULL |
+----------------------------------------------------------------------+