色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql怎么把行轉(zhuǎn)換為列

林雅南2年前9瀏覽0評論

在MySQL中,將行轉(zhuǎn)換為列可以使用Pivot Table(數(shù)據(jù)透視表)的概念。利用這個方法可以節(jié)省時間并提高效率。

首先,讓我們通過下面這張表格來了解一下我們將要做的事情:

+-------+--------+----------+------+
| Name  | Gender | Category | Mark |
+-------+--------+----------+------+
| Alice | F      | math     |  90  |
| Alice | F      | physics  |  80  |
| Alice | F      | biology  |  70  |
| Bob   | M      | math     |  85  |
| Bob   | M      | physics  |  75  |
| Bob   | M      | biology  |  60  |
+-------+--------+----------+------+

我們的目標是將表格轉(zhuǎn)換為以下格式:

+-------+------+-----+-----+
| Name  | Math | Ph  | Bio |
+-------+------+-----+-----+
| Alice |  90  |  80 |  70 |
| Bob   |  85  |  75 |  60 |
+-------+------+-----+-----+

如何實現(xiàn)?使用下面的代碼將會是一個不錯的選擇:

SELECT
Name,
MAX(CASE WHEN Category = 'math' THEN Mark ELSE NULL END) AS 'Math',
MAX(CASE WHEN Category = 'physics' THEN Mark ELSE NULL END) AS 'Ph',
MAX(CASE WHEN Category = 'biology' THEN Mark ELSE NULL END) AS 'Bio'
FROM
student_mark
GROUP BY
Name;

讓我們看看這個SQL代碼究竟在做什么:

  • 首先,我們按照Name對表格進行分組,得到所有學(xué)生的成績。
  • 然后,我們在CASE子句中創(chuàng)建了條件:如果Category是“math”,則返回Mark,否則返回NULL。
  • 使用每個條件創(chuàng)建了一列。
  • 通過使用MAX函數(shù)選擇最大值,MySQL將值從行轉(zhuǎn)換為列。

通過使用這個技巧,我們可以快速將行轉(zhuǎn)換為列,同時實現(xiàn)簡單而有效的數(shù)據(jù)管理。