Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pivot Berbilang Lajur secara Dinamik dalam T-SQL?

Bagaimana untuk Pivot Berbilang Lajur secara Dinamik dalam T-SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-14 20:22:43424semak imbas

How to Dynamically Pivot Multiple Columns in T-SQL?

Penjelasan terperinci tentang jadual pangsi dinamik T-SQL

Artikel ini menerangkan cara menukar jadual dengan data yang disimpan dalam berbilang lajur kepada format jadual pangsi, dengan setiap nilai dipaparkan dalam lajurnya sendiri.

Andaikan anda mempunyai jadual yang mengandungi butiran projek untuk berbilang projek, setiap satu dengan tiga atribut berbeza: nama, telefon dan e-mel. Matlamatnya adalah untuk membentuk semula data ini ke dalam format yang setiap item mempunyai barisnya sendiri dan atribut disenaraikan sebagai lajur.

Teknologi pangsi dinamik dalam T-SQL boleh melengkapkan penukaran ini dengan berkesan. Langkah berikut menggariskan kaedah:

  1. Membina pertanyaan SQL dinamik:

    • Jana pertanyaan secara dinamik menggunakan data yang disediakan.
    • Tetapkan pertanyaan SQL dinamik kepada pembolehubah (@pertanyaan).
  2. Laksanakan pertanyaan SQL dinamik:

    • Laksanakan pembolehubah @query, yang akan menjalankan pertanyaan SQL dinamik yang menjalankan operasi pangsi.
  3. Jana senarai lajur secara dinamik:

    • Gunakan fungsi STUFF untuk menggabungkan nama lajur ke dalam senarai yang dipisahkan koma, bernama @cols.
    • Senarai lajur ini akan digunakan sebagai spesifikasi lajur PIVOT.
  4. Gunakan fungsi perspektif:

    • Dalam klausa PIVOT, nyatakan lajur yang akan menjadi pengepala lajur baharu dan nilai yang akan dipangsi ke baris baharu.
    • Nyatakan fungsi agregat 'MAX([Value])' untuk mendapatkan nilai maksimum bagi setiap nama lajur.

Contoh T-SQL yang disediakan menggambarkan proses ini. Ia menunjukkan cara membuat pertanyaan secara dinamik, menjana senarai lajur dan akhirnya memutar data untuk mencapai hasil yang diinginkan.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Berbilang Lajur secara Dinamik dalam T-SQL?. 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