ホームページ >データベース >mysql チュートリアル >Oracle SQLでアンダースコアの前の部分文字列を抽出するにはどうすればよいですか?
問題:
以前のさまざまな文字シーケンスを持つ結果を含む列から部分文字列を選択するアンダースコア ("_") 文字 (アンダースコアを除く)
解決策:
望ましい結果を達成するには、SQL 関数を組み合わせて解決策を提供します。
SELECT NVL(SUBSTR(column, 0, INSTR(column, '_')-1), column) AS output FROM YOUR_TABLE;
説明:
例:
指定:
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 サイトの他の関連記事を参照してください。