POSITION 関数 - Amazon Redshift

POSITION 関数

文字列内の指定されたサブ文字列の位置を返します。

同様の関数については、「CHARINDEX 関数」および「STRPOS 関数」を参照してください。

構文

POSITION(substring IN string )

引数

substring

string 内を検索するサブ文字列。

string

検索する文字列または列。

戻り型

POSITION 関数は、サブ文字列の位置 (0 ではなく 1 から始まる) に対応する INTEGER を返します。position はバイト数ではなく文字数に基づくため、マルチバイト文字は 1 文字としてカウントされます。文字列内のサブ文字列がない場合、POSITION は 0 を返します。

dog という語の中での文字列 fish の位置を返すには、次の例を使用します。

SELECT POSITION('fish' IN 'dog'); +-----------+ | position | +-----------+ | 0 | +-----------+

dogfish という語の中での文字列 fish の位置を返すには、次の例を使用します。

SELECT POSITION('fish' IN 'dogfish'); +-----------+ | position | +-----------+ | 4 | +-----------+

以下の例は、TICKIT サンプルデータベースの SALES テーブルを使用します。詳細については、「サンプルデータベース」を参照してください。

SALES テーブル内でコミッションが 999.00 を上回る販売取引の数を返すには、次の例を使用します。このコマンドは、999.00 を超えるコミッションをカウントします。これは、小数点以下の桁数がコミッション値の先頭から 4 桁より大きいかどうかを調べることでカウントされます。

SELECT DISTINCT POSITION('.' IN commission), COUNT (POSITION('.' IN commission)) FROM sales WHERE POSITION('.' IN commission) > 4 GROUP BY POSITION('.' IN commission) ORDER BY 1,2; +-----------+-------+ | position | count | +-----------+-------+ | 5 | 629 | +-----------+-------+