Oracle の行と列の転置方法: 1. pivot() 関数を使用して行を列に変換します。構文は「pivot ((type) の列名の集計関数)」です。2. unpivot 関数を使用します。 () 列を行に変換する関数。構文は「unpivot((型) の列名に対する列名)」です。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
私は以前、一般的な SQL で行と列を転置したことがあります。行と列を転置するには、集計関数 sum | max を使用し、それを結合します。それを実現するには、case when then else end ステートメントを使用します。列から行へは、union または Union all を使用して実装されます。これが実は少々面倒で、Oracleデータでは行と列の入れ替え機能を実現するために特別にこのような機能が用意されています。
一般的な SQL を使用して行と列の転置を実装することもできますが、Oracle では、行と列の転置を処理するための特別な関数、つまり、以下で紹介するピボット関数とアンピボット関数を使用します。
1. 行から列へのピボット
Oracle データベースには、行から列への機能を実現するためのピボット機能が用意されており、上記の行から列への効果も実現できます。次のように記述することもできます:
SELECT NAME AS 姓名, "'语文'", "'数学'", "'英语'" FROM stu_score pivot ( max( score ) FOR SUBJECT IN ( '语文', '数学', '英语' ) );
クエリ結果は次のとおりです:
2. アンピボット列変換
Oracle実装するアンピボット関数を提供します 列から行への関数も同じ効果を達成できます。SQL は次のように記述することもできます:
SELECT NAME AS 姓名, 月份,工资 FROM e_sal unpivot ( 工资 FOR 月份 IN ( M_1, M_2, M_3, M_4 ) );
クエリ結果は次のとおりです:
# 推奨チュートリアル: 「
Oracle ビデオ チュートリアル >>」
以上がOracleで行と列を入れ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。