指定された文字列内のサブ文字列の位置を返します。
同様の関数については、「CHARINDEX 関数」および「POSITION 関数」を参照してください。
構文
STRPOS(string, substring )
引数
- string
-
最初の入力パラメータは、検索する
CHAR
またはVARCHAR
文字列です。 - substring
-
2 番目のパラメータは、string 内で検索するサブ文字列です。
戻り型
- INTEGER
-
STRPOS 関数は、substring の位置に対応する
INTEGER
(0 ではなく 1 から始まる) を返します。position はバイト数ではなく文字数に基づくため、マルチバイト文字は 1 文字としてカウントされます。
使用に関する注意事項
string 内で substring が見つからない場合、STRPOS は 0
を返します。
SELECT STRPOS('dogfish', 'fist');
+--------+
| strpos |
+--------+
| 0 |
+--------+
例
dogfish
内の fish
の位置を示すには、次の例を使用します。
SELECT STRPOS('dogfish', 'fish');
+--------+
| strpos |
+--------+
| 4 |
+--------+
次の例では、TICKIT サンプルデータベースの SALES テーブルからのデータを使用します。詳細については、「サンプルデータベース」を参照してください。
SALES テーブル内で COMMISSION が 999.00 を上回る販売取引の数を返すには、次の例を使用します。
SELECT DISTINCT STRPOS(commission, '.'),
COUNT (STRPOS(commission, '.'))
FROM sales
WHERE STRPOS(commission, '.') > 4
GROUP BY STRPOS(commission, '.')
ORDER BY 1, 2;
+--------+-------+
| strpos | count |
+--------+-------+
| 5 | 629 |
+--------+-------+