ホームページ >データベース >mysql チュートリアル >Oracle SQLで特定の文字までの部分文字列を抽出する方法
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
追加
内Oracle10g 以降のバージョンでは、正規表現を使用したより柔軟な部分文字列抽出に REGEXP_SUBSTR 関数を利用できます。
以上がOracle SQLで特定の文字までの部分文字列を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。