MySQL中的转列函数主要用于将一行数据转换为多列数据,通常用于数据报表和分析场景。常见的转列函数包括CASE WHEN
、PIVOT
等。
解决方法:
假设学生表students
的结构如下:
| id | name | score | |----|------|-------| | 1 | 张三 | 85 | | 2 | 李四 | 72 | | 3 | 王五 | 60 |
可以使用以下SQL语句将成绩转换为“优秀”、“良好”、“及格”和“不及格”四列:
SELECT
name,
MAX(CASE WHEN score >= 90 THEN '优秀' ELSE NULL END) AS '优秀',
MAX(CASE WHEN score >= 80 AND score < 90 THEN '良好' ELSE NULL END) AS '良好',
MAX(CASE WHEN score >= 60 AND score < 80 THEN '及格' ELSE NULL END) AS '及格',
MAX(CASE WHEN score < 60 THEN '不及格' ELSE NULL END) AS '不及格'
FROM
students
GROUP BY
name;
解释:
CASE WHEN
语句根据成绩判断等级。MAX
函数将每个学生的等级取出来,因为每个学生只有一个等级,所以使用MAX
函数即可。GROUP BY
语句按学生姓名分组。通过以上示例和解释,你应该能够理解MySQL转列函数的基础概念、优势、类型、应用场景以及如何解决相关问题。
领取专属 10元无门槛券
手把手带您无忧上云