当前位置: 代码网 > it编程>数据库>大数据 > 关于SQL中PIVOT函数的使用方法详解

关于SQL中PIVOT函数的使用方法详解

2024年05月15日 大数据 我要评论
前言这篇文章给大家分享的是“pivot函数是什么,具体用法是怎样的”,希望这篇文章对你一定的参考价值和帮助提示:以下是本篇文章正文内容,下面案例仅供参考一、关于pivot函数1

前言

这篇文章给大家分享的是“pivot函数是什么,具体用法是怎样的”,希望这篇文章对你一定的参考价值和帮助

提示:以下是本篇文章正文内容,下面案例仅供参考

一、关于pivot函数

1.什么是pivot函数

在sql中pivot函数又被称为行转列函数,该函数的作用就是将行转为列,使数据看起来更加直观明了

2.它能实现什么样的效果

pivot 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合

二、使用方法

select <非透视的列>,
    [第一个透视的列],
    [第二个透视的列],
    ...
    [最后一个透视的列]

from
   表名

pivot
(
    <聚合函数>(<要聚合的列>)
for

[<包含要成为列标题的值的列>]
    in ( [第一个透视的列], [第二个透视的列],
    ... [最后一个透视的列])
) as <透视表的别名>
<可选的 order by 子句>;

pivot (聚合函数(要聚合的列) for <要旋转为行的列>  in (目标列)) as 目标表名

三、使用前后的效果

代码:

if exists(select * from sys.databases where name='student')
drop database student
go
create database student
go
use student
create table students(
id int not null,
name varchar(50) not null,
subject varchar(50) not null,
grade int not null
)
insert into students values(1,'张三','语文',76)
insert into students values(1,'张三','数学',85)
insert into students values(1,'张三','英语',74)
insert into students values(2,'李四','语文',89)
insert into students values(2,'李四','数学',78)
insert into students values(2,'李四','英语',98)

select*from students
select name as 姓名,[语文],[数学],[英语] from students pivot(sum(grade)for [subject] in([语文],[数学],[英语])) as p order by id 

使用前: 

使用后: 

总结

关于sql中行转列的方法还有很多,但是pivot函数能帮你节省很多的时间和代码,对此我觉得是比较好用的

到此这篇关于sql中pivot函数的使用方法的文章就介绍到这了,更多相关sql中pivot函数使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com