select
SUBSTR(s, 1, INSTR(s, '-') - 1) as a,
SUBSTR(s, INSTR(s, '-', -1) + 1) as b
from
(select '[email protected]@BR12340000-990' as s from dual)
SUBSTR(string, start, length)
を使用する 次の議論があります:
Aの場合:
- 検索する文字列
- 1を
start
として および - (index_of_the_first_hyphen-1)
length
。INSTR(string, searchfor)
最初のハイフンのインデックスを提供します
Bの場合:
SUBSTR(string, start)
を使用する 議論があります:
- 検索する文字列
- the(index_of_last_hyphen + 1)-今回は追加の
INSTR(string, searchfor, startindex)
を使用します 引数startindex
-1に設定します。これにより、文字列の末尾から検索して逆方向に作業し、最後のハイフンのインデックスを取得します
長さの引数は必要ありません-長さのないSUBSTRは、文字列の残りの部分を最後に返します
開始インデックスが-1のINSTRは逆方向に検索しますが、常に文字列の最後ではなく最初からインデックスを返すことに注意してください。
INSTR('dddde', 'd', -1)
12345 -- returns 4, because d is 4 from the start
54321 -- it does not return 2, even though d is 2 from the "start" when searching backwards