ホームページ >データベース >mysql チュートリアル >Oracle で VARCHAR 値を複数の列に分割するにはどうすればよいですか?
Oracle で VARCHAR 値を別々の列に分割する
一般的なデータベース変換要件に対処するために、ユーザーは多くの場合、VARCHAR 値を別々の列に解析する方法を模索します。列。典型的なシナリオには、テーブルからコメントを取得することが含まれます。各コメントは特定の文字列で始まり、目標はコメントを 2 つの異なる列に分割することです。
たとえば、次のような戻り値を考えてみましょう。
COLUMN_ONE -------------------- 'D7ERROR username'
必要な出力は次のとおりです:
COL_ONE COL_TWO -------------------- D7ERROR username
結果の後に列定義は可能ですかセットの構造化?
重要な問題は、結果セットが構造化された後に新しい列を定義できるかどうかです。答えは、データの一貫性によって異なります。
一貫した区切り文字の解決策
2 つの目的の値の間に一貫した区切り文字 (単一のスペースなど) があると仮定すると、次のクエリを使用できます:
SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, ' ')-1) AS col_one, SUBSTR(t.column_one, INSTR(t.column_one, ' ')+1) AS col_two FROM YOUR_TABLE t
このクエリは、最初に出現した文字列に基づいて文字列を分割します。スペース文字。
複雑な区切り文字の正規表現ソリューション
より複雑なシナリオのために、Oracle 10g 以降のバージョンでは正規表現のサポートと正規表現の部分文字列関数が提供されています。これにより、可変データ パターンをより柔軟に処理できるようになります。
追加参照:
以上がOracle で VARCHAR 値を複数の列に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。