Oracle SQL での特定の文字までの部分文字列の取得
テーブルの列から部分文字列を選択し、範囲を特定の文字に制限することは可能です。挑戦的。 「ABC_blahblahblah」という形式の値を含む列があるシナリオを考えてみましょう。目標は、アンダースコアの前の部分のみを抽出することです。
位置ベースの選択に依存する SUBSTRING 関数では、アンダースコアの位置が変化するため十分ではありません。 RTRIM は、文字列の末尾から特定の文字を削除することを目的としていますが、要件と正確には一致していません。
この課題に対処するには、Oracle SQL 関数を組み合わせて使用できます。 SUBSTR、INSTR、および NVL を活用することで、望ましい結果を達成できます。
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output FROM DUAL
説明:
使用法:
SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output FROM YOUR_TABLE t
Oracle10g では、REGEXP_SUBSTR を利用できます。正規表現のマッチングを実行し、目的の部分文字列を抽出するための代替アプローチを提供します。
以上がOracle SQLで特定の文字の前の部分文字列を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。