在数据库操作中,`行转列`是一个常见的需求,尤其是在报表展示或数据分析时。例如,你有一张存储学生成绩的表格,每一行代表一个科目和对应的成绩,但有时需要将这些数据以科目为列展示,方便横向对比。这时就需要用到SQL中的`CASE`语句或`PIVOT`函数来实现。
比如,假设你的原始表如下:
| 学生姓名 | 科目 | 成绩 |
|----------|--------|------|
| 张三 | 数学 | 85 |
| 张三 | 英语 | 90 |
| 李四 | 数学 | 78 |
| 李四 | 英语 | 88 |
通过行转列后,可以得到:
| 学生姓名 | 数学成绩 | 英语成绩 |
|----------|----------|----------|
| 张三 | 85 | 90 |
| 李四 | 78 | 88 |
具体SQL实现方式如下:
```sql
SELECT
学生姓名,
MAX(CASE WHEN 科目 = '数学' THEN 成绩 END) AS 数学成绩,
MAX(CASE WHEN 科目 = '英语' THEN 成绩 END) AS 英语成绩
FROM 表名
GROUP BY 学生姓名;
```
这种方法简单高效,能够快速满足行转列的需求,让数据更加直观易读。📊💡