Oracle データベースでは、行変換は一般的なデータ処理要件です。データの表示と分析を改善するために、行の複数の値を列の複数の値に変換します。
たとえば、次のテーブルがあるとします。
ID | Name | Score1 | スコア 2 | スコア 3 |
---|---|---|---|---|
ジョン | 80 | 70 | 90 | |
リリー | 90 | 85 | 95 | |
トム | 60 | 75 | ##80 |
件名 | スコア | ||
---|---|---|---|
スコア1 | 80 | 1 | |
スコア2 | 70 | 1 | |
スコア 3 | 90 | ##2 | リリー |
90 | 2 | リリー | |
85 | 2 | リリー | |
95 | 3 | トム | |
60 | 3 | トム | |
75 | 3 | Tom | |
80 | Oracle では、変換に使用できるメソッドがいくつかあります。 UNPIVOT と UNION ALL の使用を含む、行から列への変換。次に、各メソッドの手順と構文について詳しく説明します。 |
CREATE TABLE score ( ID INT, Name VARCHAR2(20), Score1 INT, Score2 INT, Score3 INT ); INSERT INTO score VALUES (1, 'John', 80, 70, 90); INSERT INTO score VALUES (2, 'Lily', 90, 85, 95); INSERT INTO score VALUES (3, 'Tom', 60, 75, 80); COMMIT;
SELECT ID, Name, Subject, Score FROM score UNPIVOT ( Score FOR Subject IN (Score1, Score2, Score3) );
ID
スコア | 1 | ||
---|---|---|---|
80 | 1 | ジョン | |
70 | 1 | ジョン | |
90 | ##2 | リリー | |
90 | 2 | リリー | |
85 | 2 | リリー | |
95 | 3 | トム | |
60 | #3 | トム | |
75 | 3 | トム | |
80 | ##ステップ 3: テーブルをクリアする | 最後に、テーブルを削除してデータをクリアできます: |
CREATE TABLE score ( ID INT, Name VARCHAR2(20), Score1 INT, Score2 INT, Score3 INT ); INSERT INTO score VALUES (1, 'John', 80, 70, 90); INSERT INTO score VALUES (2, 'Lily', 90, 85, 95); INSERT INTO score VALUES (3, 'Tom', 60, 75, 80); COMMIT;
SELECT ID, Name, 'Score1' Subject, Score1 Score FROM score UNION ALL SELECT ID, Name, 'Score2' Subject, Score2 Score FROM score UNION ALL SELECT ID, Name, 'Score3' Subject, Score3 Score FROM score ORDER BY ID, Subject;
ID
名前
#1 | ジョン | ||
---|---|---|---|
1 | ジョン | スコア 2 | |
1 | ジョン | スコア 3 | |
2 | リリー | スコア 1 | |
2 | リリー | スコア 2 | |
2 | リリー | スコア 3 | |
##3 | トム | スコア1 | 60 |
##3 | トム | スコア 2 | 75 |
3 | トム | スコア 3 | 80 |
ステップ 3: テーブルをクリアする | 最後に、テーブルを削除してデータをクリアできます: | DROP TABLE score; ログイン後にコピー ログイン後にコピー | summaryRow to column は一般的なデータ処理テクノロジーにより、データをより適切に表示および分析できるようになります。 Oracle SQL では、UNPIVOT と UNION ALL を使用して行を列に変換できます。これらの概念と関連する構文をマスターすることで、データベース内のデータを簡単に処理および分析できるようになります。 |
以上がOracle で行を列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。