Oracleでは、INSTR関数を使用して文字列の位置を求める事ができます。
文法:
INSTR(word, target [, N [, M] ] )
wordで指定した文字列からtargetを検索して、位置を求めます。Nを指定している場合はN番目の文字から検索を開始します。Mを指定している場合はM番目に検索されるtargetの位置を返します。N、Mを省略すると、共に1として扱われます。
targetを最後(末尾)から検索するにはNに負の数を指定します。
使用例:メールアドレスの@の位置を求める。
SELECT email, INSTR(email, ‘@’) FROM tbEmpTable;
email INSTR(email, ‘@’)
————————————————————
Oyamada@sql.jpn.org 8
tani@sql-master.net 5
infomation@sql-master.net 11
使用例:電話番号から?(ハイフン)が2番目に見つかった位置を求める。
SELECT tel, INSTR(tel, ‘ – ‘, 1, 2) FROM tbEmpTable;
tel INSTR(tel, ‘ – ‘, 1, 2)
—————————————————————–
04-111b-234# 8
032-22-bb398 7
003405#1222 0
使用例:メールアドレスの@を最後(末尾)から検索して位置を求める。
SELECT email, INSTR(email, ‘@’, -1) FROM tbEmpTable;
email INSTR(email, ‘@’)
————————————————————
Oyamada@sql.jpn.org 12
tani@sql-master.net 15
infomation@sql-master.net 15