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!