Pivot函数的sql写法,给出代码
时间: 2024-05-05 18:16:04 浏览: 20
在SQL中,可以使用以下代码来实现Pivot函数:
```
SELECT [列1], [列2], [列3], ..., [列n],
MAX(CASE WHEN [条件1] THEN [值] ELSE NULL END) AS [新列1],
MAX(CASE WHEN [条件2] THEN [值] ELSE NULL END) AS [新列2],
MAX(CASE WHEN [条件3] THEN [值] ELSE NULL END) AS [新列3],
...
MAX(CASE WHEN [条件n] THEN [值] ELSE NULL END) AS [新列n]
FROM [表名]
GROUP BY [列1], [列2], [列3], ..., [列n]
```
其中,[条件1]、[条件2]、[条件3]、...、[条件n]是用于筛选数据的条件,[值]是需要聚合的字段,[新列1]、[新列2]、[新列3]、...、[新列n]是最终生成的新列名。
举例来说,如果我们有一个学生表,其中包含学生姓名、科目、成绩三个字段,我们想要将科目作为列名,将成绩作为对应的值,生成一个以学生姓名为行名的Pivot表格,可以使用以下代码:
```
SELECT 姓名,
MAX(CASE WHEN 科目 = '语文' THEN 成绩 ELSE NULL END) AS '语文',
MAX(CASE WHEN 科目 = '数学' THEN 成绩 ELSE NULL END) AS '数学',
MAX(CASE WHEN 科目 = '英语' THEN 成绩 ELSE NULL END) AS '英语'
FROM 学生表
GROUP BY 姓名
```