在SQL中,可以使用CASE语句来实现部分转置。以下是一个示例:
假设我们有一个表格名为scores,包含以下数据:
+---------+-------+------+
| student | class | score |
+---------+-------+------+
| Alice | Math | 90 |
| Alice | English | 85 |
| Alice | Science | 95 |
| Bob | Math | 80 |
| Bob | English | 75 |
| Bob | Science | 85 |
+---------+-------+------+
我们想要将每个学生的成绩按科目进行转置,变成以下形式:
+---------+--------+--------+---------+
| student | Math | English| Science |
+---------+--------+--------+---------+
| Alice | 90 | 85 | 95 |
| Bob | 80 | 75 | 85 |
+---------+--------+--------+---------+
我们可以使用以下SQL语句来实现:
SELECT
student,
MAX(CASE WHEN class = 'Math' THEN score END) AS Math,
MAX(CASE WHEN class = 'English' THEN score END) AS English,
MAX(CASE WHEN class = 'Science' THEN score END) AS Science
FROM scores
GROUP BY student;
解释:
上述SQL语句将返回我们期望的转置结果。
下一篇:部分使用Vue和nginx