カテゴリ:

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

ARRAY_POSITION

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

構文

ARRAY_POSITION( <variant_expr> , <array> )
Copy

引数

value_expr

array で見つかる値。

array

検索する ARRAY。

戻り値

この関数は、 array 内の value_expr の位置を指定する INTEGER を返します。

使用上の注意

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

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

  • value_expr に NULL を指定すると、関数は配列内の最初の NULL の位置を返します。

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

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