ホームページ >データベース >mysql チュートリアル >Oracle で VARCHAR 値を複数の列に分割するにはどうすればよいですか?

Oracle で VARCHAR 値を複数の列に分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-02 22:05:43649ブラウズ

How Can I Split a VARCHAR Value into Multiple Columns in Oracle?

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 以降のバージョンでは正規表現のサポートと正規表現の部分文字列関数が提供されています。これにより、可変データ パターンをより柔軟に処理できるようになります。

追加参照:

  • [SUBSTR](https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions066.htm#SQLRF) 00482)
  • [INSTR](https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions414.htm#SQLRF02048)

以上がOracle で VARCHAR 値を複数の列に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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