ホームページ >データベース >mysql チュートリアル >Oracle SQLで区切り文字が最後に出現した時点で文字列を分割するにはどうすればよいですか?

Oracle SQLで区切り文字が最後に出現した時点で文字列を分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-05 14:56:44139ブラウズ

How to Split a String at the Last Occurrence of a Delimiter in Oracle SQL?

Oracle SQL を使用した特定の区切り文字位置での文字列の分割

特定の区切り文字位置での文字列の分割は、データ操作タスクの一般的な要件です。 Oracle SQL の INSTR 関数と SUBSTR 関数は、これを実現するための簡単なアプローチを提供します。

あなたの場合、文字列 "F/P/O" を最も遠い区切り文字で分割したいと考えました。この場合、これは最後のスラッシュ (/)。元の SQL ステートメントはほとんど正しいですが、INSTR 関数の重要な start_position 引数が欠落していました。

SELECT Substr('F/P/O', 1, Instr('F/P/O', '/') - 1) part1, 
       Substr('F/P/O', Instr('F/P/O', '/') + 1)    part2 
FROM   dual

INSTR で負の start_position を指定すると、文字列の末尾から逆算できます。あなたの場合、-1 を使用すると、区切り文字の最後の出現が考慮されます。

SELECT SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1,
       SUBSTR(str, Instr(str, '/', -1, 1) +1) part2
FROM DATA

この変更されたクエリは、文字列 "F/P/O" を最後のスラッシュで正しく分割し、結果は次のようになります。

PART1    PART2
-----  -----
F/P       O

以上がOracle SQLで区切り文字が最後に出現した時点で文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。