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!