ホームページ > データベース > mysql チュートリアル > Oracle SQLで特定の文字の前の部分文字列を抽出するにはどうすればよいですか?

Oracle SQLで特定の文字の前の部分文字列を抽出するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-03 15:38:38
オリジナル
951 人が閲覧しました

How to Extract Substrings in Oracle SQL Before a Specific Character?

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
ログイン後にコピー

説明:

  • NVL は、部分文字列にunderscore.
  • SUBSTR は、位置 0 (先頭) から始まり 1 文字で終わる文字列の一部を抽出します。アンダースコアの前。 INSTR はアンダースコアの位置を特定します。
  • 結果は出力列に割り当てられます。

使用法:

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート