- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
ARRAY_POSITION¶
配列内の要素に最初に現れるインデックスを返します。
構文¶
ARRAY_POSITION( <variant_expr> , <array> )
引数¶
value_expr
array
で見つかる値。array
が 半構造化 ARRAY である場合、value_expr
は VARIANT に評価される必要があります。array
が 構造化 ARRAY である場合、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 | +------------------------------------------------------------------+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 | +----------------------------------------------------------------------+