Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Pivot Jadual dan Menggabungkan Lajur dalam SQL Server?

Bagaimana untuk Pivot Jadual dan Menggabungkan Lajur dalam SQL Server?

Mary-Kate Olsen
Lepaskan: 2025-01-02 17:04:40
asal
791 orang telah melayarinya

How to Pivot a Table and Concatenate Columns in SQL Server?

Jadual Pangsi dan Penggabungan Lajur

Soalan:

Bagaimana saya boleh mengubah jadual pangkalan data dengan struktur berikut:

ID    TYPE   SUBTYPE    COUNT   MONTH
 1      A      Z          1       7/1/2008
 1      A      Z          3       7/1/2008
 2      B      C          2       7/2/2008
 1      A      Z          3       7/2/2008
Salin selepas log masuk

ke dalam jadual dengan yang berikut struktur:

ID    A_Z   B_C   MONTH
1     4     0     7/1/2008
2     0     2     7/2/2008
1     0     3     7/2/2008
Salin selepas log masuk

di mana TYPE dan SUBTYPE digabungkan untuk membentuk lajur baharu (cth., "A_Z"), dan COUNT dijumlahkan untuk nilai ID dan MONTH yang sepadan?

Jawapan :

SQL Server 2005 menyediakan pengendali PIVOT yang membolehkan transformasi yang diterangkan dalam soalan. Berikut ialah penjelasan terperinci:

  1. Jana Kod Pangsi: Tentukan gabungan nilai TYPE dan SUBTYPE yang berbeza. Contohnya, ['A_Z'].
  2. Bina SQL Dinamik: Gunakan SQL dinamik untuk menjana pertanyaan yang merangkumi pengendali PIVOT.
DECLARE @sql AS varchar(max);
SET @sql = '
;WITH p AS (
    SELECT ID, [MONTH], [TYPE] + ''_'' + SUBTYPE AS PIVOT_CODE, SUM(COUNT) AS [COUNT]
    FROM stackoverflow_159456
    GROUP BY ID, [MONTH], [TYPE] + ''_'' + SUBTYPE
)
SELECT ID, [MONTH], ' + @select_list + '
FROM p
PIVOT (
    SUM(COUNT)
    FOR PIVOT_CODE IN (
        ' + @pivot_list + '
    )
) AS pvt
';
Salin selepas log masuk
  1. Laksanakan Dynamic SQL: Laksanakan pertanyaan SQL yang dijana untuk mendapatkan yang dikehendaki output.

Penyelesaian ini memanfaatkan SQL dinamik untuk membina pertanyaan PIVOT berdasarkan gabungan unik nilai TYPE dan SUBTYPE, menyediakan pendekatan tanpa penyelenggaraan untuk mengendalikan berbilang jenis dan subjenis dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Jadual dan Menggabungkan Lajur dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan