Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Pivot Lajur SQL Menggunakan CASE WHEN untuk Mengubah Data Baris ke Lajur?

Bagaimana untuk Pivot Lajur SQL Menggunakan CASE WHEN untuk Mengubah Data Baris ke Lajur?

Mary-Kate Olsen
Lepaskan: 2025-01-11 16:02:46
asal
842 orang telah melayarinya

How to Pivot a SQL Column Using CASE WHEN to Transform Row Data into Columns?

Menggunakan CASE WHEN untuk SQL Column Pivoting

Perlu mengubah data SQL anda daripada baris kepada lajur? Pernyataan CASE WHEN menawarkan penyelesaian yang mudah untuk berputar, terutamanya apabila berurusan dengan jadual yang mengandungi nilai pendua dalam lajur yang memerlukan pengagregatan.

Mari kita ilustrasikan dengan contoh. Bayangkan jadual ini:

<code class="language-sql">Bank:
name  val   amount
John   1     2000
Peter  1     1999
Peter  2     1854
John   2     1888</code>
Salin selepas log masuk

Matlamat kami: menyusun semula ini ke dalam jadual yang nilai "val" unik menjadi lajur dan setiap "nama" unik ialah baris. Output yang dikehendaki:

<code class="language-sql">name  amountVal1 amountVal2  
John    2000        1888   
Peter   1999        1854    </code>
Salin selepas log masuk

Berikut ialah cara untuk mencapai pangsi ini menggunakan SUM() dan CASE WHEN:

<code class="language-sql">SELECT 
  name,
  SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1,
  SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2
FROM bank
GROUP BY name;</code>
Salin selepas log masuk

Pertanyaan ini menggunakan SUM() untuk mengagregatkan nilai amount bagi setiap gabungan name dan val unik. Pernyataan CASE WHEN menyemak sama ada val ialah 1 atau 2, memperuntukkan amount yang sepadan dengan sewajarnya. GROUP BY name memastikan satu baris bagi setiap nama unik. Hasilnya? Lajur amountVal1 dan amountVal2 mewakili data terpangsi dengan kemas. Kaedah ini berkesan untuk bilangan nilai val yang diketahui dan terhad. Untuk bilangan nilai yang dinamik, pertimbangkan untuk menggunakan PIVOT atau teknik lain yang lebih maju.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Lajur SQL Menggunakan CASE WHEN untuk Mengubah Data Baris ke Lajur?. 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