Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pivot Data dalam SQL Server 2000 Menggunakan Pengagregatan Bersyarat?

Bagaimana untuk Pivot Data dalam SQL Server 2000 Menggunakan Pengagregatan Bersyarat?

DDD
DDDasal
2025-01-01 12:35:12160semak imbas

How to Pivot Data in SQL Server 2000 Using Conditional Aggregation?

Memindahkan Data dalam SQL Server 2000

Data Pivoting merujuk kepada proses menukar set data daripada format menegak, berorientasikan lajur kepada mendatar, format berorientasikan baris. Dalam erti kata lain, ia membolehkan anda memutarkan data dalam jadual supaya lajur menjadi baris dan sebaliknya.

Pertimbangkan dua jadual berikut:

  • Produk

    ProductId Name
    1 Product A
    2 Product B
  • Produk Meta

    ProductId MetaKey MetaValue
    1 A Value A for Product A
    1 B Value B for Product A
    1 C Value C for Product A
    2 A Value A for Product B
    2 B Value B for Product B
    2 C Value C for Product B

Anda ingin mendapatkan set hasil yang memaparkan nama produk sebagai baris dan kunci meta sebagai lajur, dengan nilai meta yang sepadan dalam setiap sel:

ProductName Meta A Meta B Meta C
Product A Value A for Product A Value B for Product A Value C for Product A
Product B Value A for Product B Value B for Product B Value C for Product B

Untuk mencapai pangsi ini, anda boleh menggunakan gabungan pengagregatan bersyarat dan pernyataan CASE dalam SELECT pernyataan:

SELECT
    P.ProductId,
    P.Name,
    MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS MetaA,
    MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS MetaB,
    MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS MetaC
FROM
    Products AS P
INNER JOIN
    ProductMeta AS PM
    ON PM.ProductId = P.ProductId
GROUP BY
    P.ProductId,
    P.Name;

Pertanyaan ini akan mengumpulkan baris dengan betul mengikut ID dan nama produk serta mendapatkan semula nilai meta yang diingini untuk setiap kunci.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Data dalam SQL Server 2000 Menggunakan Pengagregatan Bersyarat?. 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