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

Oracle SQLでアンダースコアの前の部分文字列を抽出するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-29 00:26:09432ブラウズ

How to Extract Substrings Before an Underscore in Oracle SQL?

Oracle SQL での特定の文字への部分文字列の抽出

問題:
以前のさまざまな文字シーケンスを持つ結果を含む列から部分文字列を選択するアンダースコア ("_") 文字 (アンダースコアを除く)

解決策:

望ましい結果を達成するには、SQL 関数を組み合わせて解決策を提供します。

SELECT NVL(SUBSTR(column, 0, INSTR(column, '_')-1), column) AS output
FROM YOUR_TABLE;

説明:

  • SUBSTR 関数は、指定された位置 (0) から指定された長さまで継続します。
  • INSTR 関数は、文字列内で最初に出現するアンダースコア文字の位置を決定します。
  • NVL 関数は、最初の非 null と評価されます。値を取得し、アンダースコア文字のない部分文字列が元の値を返すようにします。
  • INSTR(column, '_') から 1 を減算します。アンダースコアより前の文字のみが出力。

例:

指定:

ORG | VALUE
1   | ABC_blahblahblah
2   | DEFGH_moreblahblahblah
3   | IJKLMNOP_moremoremoremore

クエリ:

SELECT NVL(SUBSTR(VALUE, 0, INSTR(VALUE, '_')-1), VALUE) AS output
FROM ORG;

結果:

OUTPUT
ABC
DEFGH
IJKLMNOP

注:

Oracle10g バージョンでは、SUBSTR の代わりに REGEXP_SUBSTR 関数を使用できます:

SELECT REGEXP_SUBSTR(column, '^.*(?=_)') AS output
FROM YOUR_TABLE;

以上がOracle SQLでアンダースコアの前の部分文字列を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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