Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengubah Data Secara Dinamik dalam Pelayan SQL?

Bagaimana untuk Mengubah Data Secara Dinamik dalam Pelayan SQL?

DDD
Lepaskan: 2025-01-25 18:52:11
asal
211 orang telah melayarinya

How to Dynamically Pivot Data in SQL Server?

Pertanyaan Pangsi Dinamik Pelayan SQL

Artikel ini menerangkan cara menukar set data daripada format menegak kepada format mendatar, dengan kategori sebagai lajur dan tarikh sebagai baris. Ini biasanya dicapai menggunakan pengendali PIVOT.

Kod SQL berikut memulakan set data dalam jadual sementara bernama temp. SQL Dinamik digunakan untuk membina pertanyaan PIVOT. @colsPembolehubah menggabungkan kategori yang berbeza ke dalam rentetan dipisahkan koma. @queryPembolehubah membina pertanyaan PIVOT sebenar, mengumpulkan mengikut tarikh dan berputar mengikut kategori.

<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) 
            FROM temp c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT date, ' + @cols + ' from 
            (
                select date
                    , amount
                    , category
                from temp
           ) x
            pivot 
            (
                 max(amount)
                for category in (' + @cols + ')
            ) p '</code>
Salin selepas log masuk

Melaksanakan pertanyaan ini akan menghasilkan hasil yang diingini:

<code>日期                        ABC         DEF    GHI
2012-01-01 00:00:00.000     1000.00     NULL    NULL
2012-02-01 00:00:00.000     NULL        500.00  800.00
2012-02-10 00:00:00.000     NULL        700.00  NULL
2012-03-01 00:00:00.000     1100.00     NULL    NULL</code>
Salin selepas log masuk

Pendekatan dinamik ini membolehkan kategori dilaraskan mengikut keperluan tanpa mengubah struktur pertanyaan. Ingat untuk memadamkan jadual sementara selepas digunakan untuk mengelakkan masalah prestasi.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Data Secara Dinamik dalam Pelayan SQL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan