SQL でサブスクリプション番号の単一列を複数の列に分割するにはどうすればよいですか?
単一の列を複数の列に分割する
この問題は、テーブル列内のデータを操作して追加の列を作成する方法を扱います。元の列には、サブスクリプション番号が 1 つの値で格納されます。私たちのタスクは、これらのサブスクリプション番号のさまざまな部分を抽出し、それらを複数の列に分散することです。
創造的なアプローチには、文字列操作と XML 処理を組み合わせて利用することが含まれます。その仕組みは次のとおりです:
ステップ 1: サブスクリプション番号を XML 構造に変換する
サブスクリプション番号内のすべてのスペースをダッシュに置き換え、replace() 関数を使用してダッシュを変換します。特別な区切り文字にするには、「§§Split§§」と言います。これにより、変換された数値を XML 構造として表示できます。
replace(replace(subscription_number, ' ', '-'), '-', '§§Split§§')
変換された数値は次のようになります。
<x>SC-5-1395-174-25P</x>
ステップ 2: XML 構造から値を抽出する
Cast() 関数を使用して、変換された数値を XML タグでラップし、xDim.value() 関数を使用して個々の部分を抽出します。たとえば、最初の部分 (SC) を取得するには、次を使用します。
ltrim(rtrim(xDim.value('/x[1]', 'varchar(max)')))
ステップ 3: 抽出された値を新しい列に割り当てる
クロス適用を使用して、抽出された値を新しい列に割り当てます結果セット内の新しい列。以下に例を示します。
Select A.subscription_number, B.Pos1 as Col1, B.Pos2 as Col2, B.Pos3 as Col3, B.Pos4 as Col4, B.Pos5 as Col5, B.Pos6 as Col6, B.Pos7 as Col7 From table A Cross Apply ( Select Pos1 = ltrim(rtrim(xDim.value('/x[1]', 'varchar(max)'))) , Pos2 = ltrim(rtrim(xDim.value('/x[2]', 'varchar(max)'))) , Pos3 = ltrim(rtrim(xDim.value('/x[3]', 'varchar(max)'))) , Pos4 = ltrim(rtrim(xDim.value('/x[4]', 'varchar(max)'))) , Pos5 = ltrim(rtrim(xDim.value('/x[5]', 'varchar(max)'))) , Pos6 = ltrim(rtrim(xDim.value('/x[6]', 'varchar(max)'))) , Pos7 = ltrim(rtrim(xDim.value('/x[7]', 'varchar(max)'))) From ( Select Cast('<x>' + replace((Select replace(replace(A.subscription_number, ' ', '-'), '-', '§§Split§§') as [*] For XML Path('')), '§§Split§§', '</x><x>') + '</x>' as xml) as xDim ) as A ) B
このアプローチにより、単一の列の値を複数の新しい列にエレガントに分割でき、データを保存およびアクセスするためのクリーンで構造化された方法が提供されます。
以上がSQL でサブスクリプション番号の単一列を複数の列に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
