欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

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

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

首先,讓我們通過(guò)下面這張表格來(lái)了解一下我們將要做的事情:

+-------+--------+----------+------+
| 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  |
+-------+--------+----------+------+

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

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

如何實(shí)現(xiàn)?使用下面的代碼將會(huì)是一個(gè)不錯(cuò)的選擇:

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;

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

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

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