Oracle SQL を使用した区切り文字位置による文字列の分割
別の投稿と同様に、要件は、最も遠い文字列の出現によって文字列を分割することです。デリミタ。ここでの主な違いは、区切り文字が必ずしも最初のインスタンスではなく、最も遠いところにあることです。
これを実現するには、SUBSTR 関数と INSTR 関数を利用できます。 Instr(str, '/', -1, 1) は最も遠い区切り文字の位置を特定しますが、-1 は文字列の末尾から先頭に向かって検索を開始することを示します。
ただし、この例は、INSTR 関数に start_position が存在しないためです。 start_position = -1 を追加すると、INSTR 関数は最も遠い区切り文字を見つけて、それに応じて文字列を分割します。
変更されたコードは次のとおりです:
WITH DATA AS ( SELECT 'F/P/O' str FROM dual ) SELECT SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1, SUBSTR(str, Instr(str, '/', -1, 1) +1) part2 FROM DATA
この変更により、コードが正確に分割されます。希望の区切り文字位置にある文字列。指定された文字列に対して「F/P」と「O」が正しく出力されます。 「F/P/O」。
以上がOracle SQL で最も遠い区切り文字の位置で文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。