Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggunakan PIVOT SQL Dinamik untuk Transformasi Data dengan NULL atau Pengendalian Rentetan Kosong?

Bagaimana untuk Menggunakan PIVOT SQL Dinamik untuk Transformasi Data dengan NULL atau Pengendalian Rentetan Kosong?

Barbara Streisand
Lepaskan: 2025-01-25 18:42:11
asal
929 orang telah melayarinya

Gunakan SQL PIVOT dinamik untuk penukaran data untuk mengendalikan rentetan NULL atau kosong

Artikel ini menerangkan cara menukar data dalam jadual ke dalam format pangsi kategori, dengan nilai nol diwakili sebagai NULL atau rentetan kosong. Ini boleh dicapai melalui pertanyaan SQL PIVOT dinamik.

Gunakan PIVOT untuk penukaran dinamik

Langkah berikut menggariskan proses mencipta pertanyaan PIVOT dinamik:

  1. Buat jadual sementara: Cipta jadual sementara untuk menyimpan data asal dan tentukan lajur yang diperlukan.
  2. Jana senarai lajur dinamik: Gunakan subkueri untuk mengekstrak kategori berbeza dan menggabungkannya menjadi rentetan yang dipisahkan koma.
  3. Bina pertanyaan PIVOT: Bina pertanyaan PIVOT menggunakan senarai lajur yang dijana sebagai parameter PIVOT. MAX()Fungsi agregat mendapatkan semula nilai maksimum untuk setiap kategori.
  4. Lakukan pertanyaan: Laksanakan pertanyaan PIVOT dinamik untuk menjana hasil yang diubah.
<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 '


execute(@query)</code>
Salin selepas log masuk

Keputusan

Jadual yang terhasil akan mengandungi lajur yang mewakili kategori unik, dengan tarikh sebagai baris. Nilai null boleh dikendalikan melalui NULL atau rentetan kosong bergantung pada output yang dikehendaki.

Contoh hasil:

<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

How to Use Dynamic SQL PIVOT for Data Transformation with NULL or Empty String Handling?

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan PIVOT SQL Dinamik untuk Transformasi Data dengan NULL atau Pengendalian Rentetan Kosong?. 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