Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memindahkan Baris ke Lajur dalam DB2?
Apabila bekerja dengan data dalam pangkalan data, anda mungkin perlu menukar baris, bermakna membalikkan baris dan lajur. Ini boleh berguna untuk analisis data, pelaporan dan tujuan lain.
Jika anda mempunyai jadual DB2 dengan baris yang anda mahu alihkan kepada lajur, terdapat beberapa kaedah yang boleh anda gunakan. Satu pendekatan ialah menggunakan subkueri berkorelasi, yang boleh menjadi cekap untuk set data kecil.
SELECT A.ItemID, MAX(CASE WHEN A.Item = 'Meeting' THEN Value END) AS Meeting, MAX(CASE WHEN A.Item = 'Advise' THEN Value END) AS Advise, MAX(CASE WHEN A.Item = 'NoAdvise' THEN Value END) AS NoAdvise FROM A GROUP BY A.ItemID
Pertanyaan ini menggunakan subkueri berkorelasi untuk mencari nilai maksimum bagi setiap item dalam setiap baris. Fungsi MAX() digunakan untuk mengagregat nilai dan penyataan CASE digunakan untuk menentukan lajur yang hendak diberikan nilai.
Kaedah lain untuk menukar baris ke lajur ialah menggunakan gabungan pengagregatan dan pangsi fungsi. Pendekatan ini boleh menjadi lebih cekap untuk set data yang besar, kerana ia menggunakan satu pernyataan SQL untuk melaksanakan transposisi.
SELECT ItemID, MAX(CASE WHEN Item = 'Meeting' THEN Value END) AS Meeting, MAX(CASE WHEN Item = 'Advise' THEN Value END) AS Advise, MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise FROM ( SELECT ItemID, Item, Value FROM TableName ) AS t GROUP BY ItemID PIVOT (MAX(Value) FOR Item IN ('Meeting', 'Advise', 'NoAdvise'))
Pertanyaan ini menggunakan fungsi PIVOT() untuk menukar data. Fungsi PIVOT() mengambil dua argumen: lajur untuk dipangsi (dalam kes ini, Item) dan senarai nilai untuk disertakan dalam lajur baharu (dalam kes ini, Meeting, Advise dan NoAdvise).
Atas ialah kandungan terperinci Bagaimana untuk Memindahkan Baris ke Lajur dalam DB2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!