sql 列转行案例
时间: 2023-12-06 17:05:28 浏览: 176
MySql 列转行实例
以下是一个SQL Server中使用PIVOT函数实现列转行的示例:
假设有一个表格students,包含学生姓名和成绩,如下所示:
| Name | Subject | Score |
|--------|---------|-------|
| Alice | Math | 90 |
| Alice | English | 85 |
| Alice | Science | 92 |
| Bob | Math | 80 |
| Bob | English | 75 |
| Bob | Science | 88 |
现在需要将该表格按照学生姓名转换为以下形式:
| Name | Math | English | Science |
|--------|------|---------|---------|
| Alice | 90 | 85 | 92 |
| Bob | 80 | 75 | 88 |
可以使用PIVOT函数实现该转换,具体代码如下:
```sql
SELECT Name, Math, English, Science
FROM (
SELECT Name, Subject, Score
FROM students
) AS SourceTable
PIVOT (
MAX(Score)
FOR Subject IN (Math, English, Science)
) AS PivotTable;
```
其中,MAX(Score)表示对于每个学生和科目,取最大的成绩作为转换后的值;(Math, English, Science)表示需要转换的科目列表。
阅读全文