Oracle で VARCHAR を個別の列に分割する
特定の区切り文字に基づいて VARCHAR 列を個別の列に変換するタスクには、特有の課題が伴いますデータベース管理システムで。この質問では、文字列を複数の部分に分割する目的で結果セットが構造化された後に列を定義する実現可能性を検討します。
データの取得と変換
この内容ではこのシナリオでは、入力データは特定の文字列パターンを持つコメントで構成されます。目標は、これらのコメントを 2 つの別々の列に分割し、コメントの最初のセクションが最初の列に表示され、残りのテキストが 2 番目の列に表示されるようにすることです。たとえば、取得した値が次の場合:
COLUMN_ONE -------------------- 'D7ERROR username'
必要な出力は次のようになります:
COL_ONE COL_TWO -------------------- D7ERROR username
SUBSTR と INSTR を使用した解決策
データが目的の列間に一貫した間隔を示していると仮定すると、次のクエリは次のようになります。 used:
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
このクエリは、SUBSTR 関数を利用して、最初のスペース文字の位置 (INSTR によって決定される) に基づいて文字列の一部を抽出します。結果は、区切り文字が削除された、目的の 2 つの列になります。
Oracle 10g の高度な機能
Oracle 10g 以降のバージョンでは、正規表現を使用して、より柔軟なオプションを使用できます。 (正規表現)。 REGEXP_SUBSTR 関数により、強力なパターン マッチングと文字列が可能になります。操作。
参照:
以上がOracle で VARCHAR 列を複数の列に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。