Menukar satu lajur data kepada berbilang lajur data ialah keperluan biasa dalam Oracle. Sebagai contoh, katakan anda mempunyai jadual yang mengandungi produk, tarikh jualan dan kuantiti jualan. Anda ingin menukar ini kepada jualan bulanan untuk setiap produk. Cara paling mudah untuk mencapai ini ialah menggunakan operasi PIVOT.
Berikut ialah contoh jadual:
PRODUCT SALE_DATE SALE_QUANTITY ------------------------------------- A 2021-01-01 100 A 2021-01-15 200 A 2021-02-01 300 B 2021-01-01 150 B 2021-03-01 250
Kami mahu menukarnya ke dalam format berikut:
PRODUCT JAN_SALE FEB_SALE MAR_SALE ------------------------------------- A 300 300 0 B 150 0 250
Untuk mencapai operasi ini menggunakan PIVOT, anda boleh menggunakan SQL berikut :
SELECT PRODUCT, NVL(JAN_SALE, 0) AS JAN_SALE, NVL(FEB_SALE, 0) AS FEB_SALE, NVL(MAR_SALE, 0) AS MAR_SALE FROM (SELECT PRODUCT, TO_CHAR(SALE_DATE, 'MON') AS SALE_MONTH, SALE_QUANTITY FROM SALES_TABLE) PIVOT (SUM(SALE_QUANTITY) FOR SALE_MONTH IN ('JAN' AS JAN_SALE, 'FEB' AS FEB_SALE, 'MAR' AS MAR_SALE))
Dalam SQL di atas, kami mula-mula menukar jadual asal kepada hasil perantaraan dengan lajur BULAN. Kami menggunakan fungsi TO_CHAR untuk menukar SALE_DATE kepada rentetan bulan pendek. Kami kemudian menggunakan operator PIVOT untuk menukar kuantiti jualan setiap bulan kepada lajur. Sintaks PIVOT sangat ringkas, anda hanya perlu menentukan lajur dan nilai yang hendak ditukar dan nama lajur baharu.
Dalam contoh di atas, kami menggunakan fungsi NVL untuk memastikan hasilnya merangkumi semua produk, walaupun tiada jualan dalam sebulan. Jika fungsi NVL tidak digunakan, hasil pertanyaan hanya boleh memaparkan produk dan bulan dengan jualan.
Operasi PIVOT bukan sahaja sesuai untuk menukar lajur kepada berbilang lajur, tetapi juga boleh menukar baris kepada berbilang baris menggunakan sintaks yang serupa. Sebagai contoh, katakan anda mempunyai jadual dengan wilayah, produk dan kuantiti jualan. Anda ingin menukar ini kepada jumlah jualan bagi setiap produk dan wilayah. Menggunakan operasi PIVOT anda boleh mencapai matlamat ini dengan mudah.
Ringkasnya, operasi PIVOT ialah alat yang sangat berguna dan mudah dalam Oracle SQL, yang boleh menukar lajur kepada berbilang lajur atau baris kepada berbilang baris dengan cepat. Fleksibiliti dan sifatnya yang boleh disesuaikan menjadikannya berguna dalam banyak situasi.
Atas ialah kandungan terperinci oracle menukar lajur kepada berbilang lajur. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!