Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengubah Baris ke Lajur dalam DB2 Menggunakan PIVOT (Tersirat)?

Bagaimana untuk Mengubah Baris ke Lajur dalam DB2 Menggunakan PIVOT (Tersirat)?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-30 13:27:16649semak imbas

How to Transpose Rows into Columns in DB2 Using PIVOT (Implicit)?

Memindahkan Struktur Data dengan Pemansi dalam DB2

Tugas memerlukan pemindahan baris ke dalam lajur dalam jadual DB2, mengubah data daripada struktur berikut :

ItemID    Item    Value
---------------------
1     Meeting     Now
1     Advise      Yes
1     NoAdvise    No
2     Meeting     Never
2     Advise      No
2     NoAdvise    Null
2     Combine    Yes

ke dalam yang dikehendaki struktur:

ItemID    Meeting  Advise   NoAdvise 
---------------------------------------
1         Now      Yes       No
2         Never    No        Null

Untuk mencapai transformasi ini, anda boleh menggunakan pertanyaan SQL yang menggunakan operator PIVOT, yang membolehkan transposisi baris ke dalam lajur berdasarkan medan pengkategorian yang ditentukan. Berikut ialah contoh pertanyaan yang boleh digunakan dalam DB2 LUW:

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

Dalam pertanyaan ini, pengendali PIVOT tidak digunakan secara eksplisit, tetapi ia dicapai secara tersirat melalui penggunaan pernyataan CASE di dalam MAX () fungsi agregat. Pernyataan CASE bertindak sebagai cara untuk mengkategorikan baris dan mengembalikan nilai maksimum untuk setiap kategori. Fungsi agregat MAX() kemudiannya memastikan bahawa nilai maksimum dikembalikan untuk setiap kategori.

Perhatikan bahawa lajur "Gabungkan" tidak disertakan dalam hasil transposed mengikut keperluan. Data yang terhasil akan diubah menjadi lajur seperti yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Baris ke Lajur dalam DB2 Menggunakan PIVOT (Tersirat)?. 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