POSITION はストリング処理関数で、すべてのデータ・タイプ (BIT、BLOB、および CHARACTER) を処理し、1 つのストリングの別のストリング内での位置を戻します。
POSITION は、あるストリング (SearchExpression) の 2 番目のストリング (SourceExpression) 内での位置を示す整数を戻します。ソース・ストリングの最初の文字の位置は 1 です。
FROM 文節がある場合、それは検索ストリング内で検索を開始する位置を示します。FROM 文節がない場合は、ソース・ストリングは先頭から検索されます。
REPEAT 文節がある場合、それは反復カウントを示し、ソース・ストリング内で N 番目に検索ストリングが出現する位置を戻します。反復カウントがマイナスの場合、ソース・ストリングは末尾から検索されます。
REPEAT 文節がない場合、反復カウントは +1 である、つまり最初の位置と想定され、先頭から検索した最初の出現個所が戻されます。検索ストリングの長さが 0 の場合、その結果は 1 です。
検索ストリングが見つからない場合、結果はゼロになります。FROM 文節がある場合には、検索するソース・ストリングの位置にのみ適用されます。REPEAT 文節がある場合、ストリングの出現回数が十分でない場合のみ、適用されます。
いずれかのパラメーターが NULL なら、結果は NULL です。
検索ストリングとソース・ストリングは、CHARACTER、BLOB、または BIT データ・タイプにすることができますが、2 つは同じタイプでなければなりません。
POSITION('Village' IN 'Hursley Village'); returns 9 POSITION('Town' IN 'Hursley Village'); returns 0 POSITION ('B' IN 'ABCABCABCABCABC'); -> returns 2 POSITION ('D' IN 'ABCABCABCABCABC'); -> returns 0 POSITION ('A' IN 'ABCABCABCABCABC' FROM 4); -> returns 4 POSITION ('C' IN 'ABCABCABCABCABC' FROM 2); -> returns 3 POSITION ('B' IN 'ABCABCABCABCABC' REPEAT 2); -> returns 5 POSITION ('C' IN 'ABCABCABCABCABC' REPEAT 4); -> returns 12 POSITION ('A' IN 'ABCABCABCABCABC' FROM 4 REPEAT 2); -> returns 7 POSITION ('AB' IN 'ABCABCABCABCABC' FROM 2 REPEAT 3); -> returns 10 POSITION ('A' IN 'ABCABCABCABCABC' REPEAT -2); -> returns 10 POSITION ('BC' IN 'ABCABCABCABCABC' FROM 2 REPEAT -3); -> returns 5