Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memindahkan Baris ke Lajur dalam DB2?

Bagaimana untuk Memindahkan Baris ke Lajur dalam DB2?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-30 15:39:18631semak imbas

How to Transpose Rows into Columns in DB2?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn