Rumah >pangkalan data >tutorial mysql >Bagaimana cara data pivot secara dinamik dalam SQL Server menggunakan SQL dinamik?

Bagaimana cara data pivot secara dinamik dalam SQL Server menggunakan SQL dinamik?

Patricia Arquette
Patricia Arquetteasal
2025-01-25 19:02:10540semak imbas

Gunakan SQL dinamik dalam data perspektif dinamik SQL Server

Artikel ini memperkenalkan cara menggunakan SQL dinamik dalam SQL Server untuk melihat secara dinamik melalui data.

Soalan

Memandangkan jadual yang mengandungi lajur "tarikh", "kategori" dan "jumlah", matlamatnya adalah untuk menukar data ke dalam format perspektif, di mana kategori menjadi lajur dan tarikh menjadi garis. Data selepas penukaran sepatutnya sama dengan:

<code>日期        ABC             DEF             GHI
1/1/2012    1000.00
2/1/2012                    500.00
2/1/2012                                    800.00
2/10/2012                   700.00
3/1/2012    1100.00</code>
penyelesaian

Untuk mencapai perspektif dinamik dalam SQL Server, SQL dinamik boleh digunakan. Berikut adalah langkah -by -Step Description:

Buat jadual sementara:

Langkah ini tidak wajib, tetapi disyorkan untuk menyimpan data yang digunakan untuk perspektif.
  1. Bina senarai dinamik: Gunakan pernyataan pilih dengan jalan XML () untuk mendapatkan nilai kategori yang berbeza, dan membina senarai nama kategori dengan petikan dengan koma.
  2. Membina Pertanyaan Dinamik:
  3. Sambungkan senarai dengan sintaks pertanyaan pivot yang diperlukan. Pertanyaan ini menggunakan nilai setiap kategori dan kombinasi tarikh menggunakan max (). Jalankan pertanyaan dinamik:
  4. Gunakan SP_EXECUCUTESQL untuk menyimpan prosedur untuk pertanyaan dinamik. Hasilnya akan menjadi data perspektif.
  5. kod sampel
  6. Hasil

Atas ialah kandungan terperinci Bagaimana cara data pivot secara dinamik dalam SQL Server menggunakan SQL dinamik?. 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