ホームページ >データベース >mysql チュートリアル >Oracle SQLでアンダースコアの前の部分文字列を抽出するにはどうすればよいですか?
文字列内の文字の位置を特定することは、データ操作における一般的な課題となることがあります。これに対処するために、この質問では、特定の文字 (この場合はアンダースコア ('_')) までの部分文字列をテーブル列から抽出する必要があるシナリオを検討します。
SUBSTRING 関数を使用する最初のアプローチは、位置ベースの選択に依存しているため不十分であることがわかります。与えられた例ではアンダースコアの位置が異なるため、このメソッドは目的の部分文字列を一貫して取得できません。
RTRIM 関数の考察。右側から特定の文字セットを削除することは、最初は有望に思えます。ただし、RTRIM 関数を別の方法と組み合わせて使用しない限り、アンダースコアに至る文字を分離することはできません。
解決策は次のとおりです。 SUBSTR 関数を、文字の位置を識別する INSTR、および NULL 値を処理する NVL と組み合わせます。次のコードは、このアプローチを示しています。
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output FROM DUAL
以上がOracle SQLでアンダースコアの前の部分文字列を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。