Untuk memutar lajur dalam jadual kepada berbilang lajur berdasarkan syarat tertentu, pertanyaan SQL boleh menggunakan ungkapan CASE WHEN. Walau bagaimanapun, apabila melaksanakan kaedah ini, pengguna mungkin mengalami hasil yang tidak betul kerana tiada pengelompokan.
Untuk menyelesaikan isu ini, pertanyaan yang diubah suai termasuk fungsi agregat SUM() dan kumpulan yang betul disediakan di bawah:
<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>
Pertanyaan yang dipertingkatkan ini akan menghasilkan output yang diingini:
name | amountVal1 | amountVal2 |
---|---|---|
John | 2000 | 1888 |
Peter | 1999 | 1854 |
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Lajur dengan betul dalam SQL Menggunakan CASE WHEN dan GROUP BY?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!