instr
instr関数は、第一引数で指定した文字列中から、第二引数で指定した文字列を検索し、その先頭文字位置を返す関数です。
第一引数、第二引数ともに文字でもかまいません。例えば

select instr('aaa','a') as a
from dual;
というようなSQLを発行した場合、結果は以下のようになります。

       a
-------- 
       1
では次のようなSQLの結果はどうなるでしょうか。

select instr('aaa','aa') 
from dual;
結果は以下のようになります。

       a
-------- 
       1
これは先頭文字の位置を返すためです。
次に、第一引数で指定した文字列中に、第二引数で指定した文字列が存在しない場合、例えば以下のようなSQLの場合、

select instr('aaa','b') 
from dual;
結果は、 0 になります。

instr関数は第三引数を指定することもできます。第三引数は開始位置を指定する引数で、第三引数を指定しなければ開始位置はデフォルトで1となります。
以下は開始位置を指定したSQL文とその結果です。

select instr('aaa','a',2) as aa
from dual;


      aa
-------- 
       2
対象文字列が aba だった場合、文字列最後のaを指定したい場合があります。
その場合は第四引数を使用して、何番目にある文字列かを指定できます。abaの場合、2番目に出ていますので

select instr('aba','a',1,2) as aa
from dual;


      aa
-------- 
       3
というように最後のaの位置を返します。

Back to top

Information