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 | +-----------+-------+