ホームページ  >  記事  >  データベース  >  Oracleで行と列を入れ替える方法

Oracleで行と列を入れ替える方法

WBOY
WBOYオリジナル
2022-01-25 10:55:555962ブラウズ

Oracle の行と列の転置方法: 1. pivot() 関数を使用して行を列に変換します。構文は「pivot ((type) の列名の集計関数)」です。2. unpivot 関数を使用します。 () 列を行に変換する関数。構文は「unpivot((型) の列名に対する列名)」です。

Oracleで行と列を入れ替える方法

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle 行と行を転置する方法

私は以前、一般的な 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 ( '语文', '数学', '英语' ) );

クエリ結果は次のとおりです:

Oracleで行と列を入れ替える方法
2. アンピボット列変換

Oracle実装するアンピボット関数を提供します 列から行への関数も同じ効果を達成できます。SQL は次のように記述することもできます:

SELECT NAME AS
	姓名,
	月份,工资 
FROM
	e_sal unpivot ( 工资 FOR 月份 IN ( M_1, M_2, M_3, M_4 ) );

クエリ結果は次のとおりです:

Oracleで行と列を入れ替える方法

# 推奨チュートリアル: 「

Oracle ビデオ チュートリアル >>

以上がOracleで行と列を入れ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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