ホームページ >データベース >mysql チュートリアル >Oracle SQLで特定の文字までの部分文字列を抽出する方法

Oracle SQLで特定の文字までの部分文字列を抽出する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-28 13:30:15793ブラウズ

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

Oracle SQL での特定の文字までの部分文字列の選択

多くのデータベース アプリケーションでは、多くの場合、文字列の一部のみを選択する必要があります。特定の区切り文字に基づいた文字列列。 Oracle SQL では、SUBSTRING 関数の位置ベースの性質により、特定の文字までの部分文字列を抽出することが困難になる場合があります。この記事では、指定された区切り文字に基づいて部分文字列を正確に取得する包括的なソリューションを紹介することで、この問題に対処します。

解決策

指定された文字までの部分文字列を分離するには、次の組み合わせを使用します。 SUBSTR、INSTR、NVL の 3 つの関数を使用できます。 SUBSTR を使用すると、開始位置と終了位置に基づいて文字列の一部を抽出できます。一方、INSTR は、指定された文字列内の指定された部分文字列または文字の位置を識別します。 NVL はフォールバック メカニズムとして機能し、指定された文字が見つからない場合は元の文字列を返します。

たとえば、値が含まれる次のテーブル列について考えてみましょう。

ABC_blahblahblah
DEFGH_moreblahblahblah
IJKLMNOP_moremoremoremore

部分文字列のみを取得するにはアンダースコア文字までは、次のクエリを使用できます。

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

このクエリでは、NVL 関数により、アンダースコア文字のない文字列は、元の文字列のまま返されます。 value.

REFERENCE

  • [SUBSTR](https://docs.oracle.com/cd/B28359_01/appd) ev.111/b28396/functions148.htm#CHDBCHCJ)
  • [INSTR](https://docs.oracle.com/cd/B28359) _01/appdev.111/b28396/functions152.htm#CHDBCHCL)
  • [NVL](https://docs.oracle.com/cd/ B28359_01/appdev.111/b28396/functions060.htm#SQLRF00120)

追加

内Oracle10g 以降のバージョンでは、正規表現を使用したより柔軟な部分文字列抽出に REGEXP_SUBSTR 関数を利用できます。

以上がOracle SQLで特定の文字までの部分文字列を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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