index_of関数
index_of関数は、検索文字列の最初の文字(ある場合)の最初の出現時の位置を決定します。
構文
returnvalue index_of(source, search_string [, start_position])
source ::= any*
search_string ::= any*
start_position ::= integer*
returnvalue ::= integer
セマンティクス
- source
-
検索する入力文字列。この引数は、一連の文字列に暗黙的にキャストされます。
- search_string
-
ソースで検索する必要がある文字列。この引数は、一連の文字列に暗黙的にキャストされます。
- start_position
-
検索を開始するソース内の位置を数値で示すオプションの整数。
デフォルトのstart_positionは0で、これはソースの最初の文字の位置でもあります。
start_positionに負の値が指定されている場合は、0とみなされます。
- returnvalue
-
検索文字列の最初の文字の最初の出現時の位置を返します。
search_stringがソースに存在しない場合は-1を返します。
search_stringの長さが0である場合、ソースの値に対して0を返します。
引数がNULLの場合はNULLを返します。
引数が空の順序であるか、複数の項目がある順序の場合はNULLを返します。
start_position引数が整数でない場合はエラーを返します。
注意:
戻り値は、start_positionの値に関係なく、ソースの先頭の相対値になります。例11-18 index_of関数
この例では、firstnameの"r"の索引が選択されています。
出力では、Johnにはrが含まれないため、-1が返されます。PeterとMaryには、それぞれ4と2の位置にrが含まれます。
SELECT firstname, index_of(firstname,"r") FROM users;
+-----------+----------+
| firstname | Column_2 |
+-----------+----------+
| John | -1 |
| Peter | 4 |
| Mary | 2 |
+-----------+----------+
例11-19 index_of関数
この例では、firstnameの"e"の索引が選択されています。出力では、Peterにeが2つ含まれていますが、最初のオカレンスの位置のみが返されます。
SELECT firstname, index_of(firstname,"e") FROM users;
+-----------+----------+
| firstname | Column_2 |
+-----------+----------+
| John | -1 |
| Peter | 1 |
| Mary | -1 |
+-----------+----------+