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

 更新时间:2023年12月29日 10:04:42   作者:HideInTheNight  
SQL Server中的PIVOT函数是一种用于将行数据转换为列数据的表格旋转函数,这篇文章主要给大家介绍了关于SQL中PIVOT函数的使用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

这篇文章给大家分享的是“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函数使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • where 子句的执行顺序

    where 子句的执行顺序

    貌似在2005之前的版本中,where子句的顺序是从前往后的。但是又貌似在2005的版本中进行了优化,所有的顺序都被统一成了以过滤能力进行排序的语句。
    2009-04-04
  • 带参数的sql和不带参数的sql存储过程区别

    带参数的sql和不带参数的sql存储过程区别

    来执行我们sql语句,看到很多分页存储过程都是直接拼凑sql语句然后用exec('')执行起来了,这个从效率和安全上面来说,都是不推荐的。
    2008-09-09
  • 数据库连接池Druid与Hikari对比详解

    数据库连接池Druid与Hikari对比详解

    这篇文章主要为大家介绍了数据库连接池Druid与Hikari对比详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 单机离线部署OceanBase3.1.5详解

    单机离线部署OceanBase3.1.5详解

    文章详细介绍了如何下载、安装和配置OceanBase数据库,包括配置OBD、修改配置文件、指定版本启动、修改limits.conf、部署安装、启动OceanBase、安装obclient、创建用户租户等步骤
    2024-11-11
  • hive中的几种join到底有什么区别

    hive中的几种join到底有什么区别

    hive处理表关联时由于数据量以及数据倾斜等问题会导致计算性能差甚至任务失败,下面这篇文章主要给大家介绍了关于hive中几种join到底有什么区别的相关资料,需要的朋友可以参考下
    2022-03-03
  • 使用Navicat连接opengauss数据库完整步骤(详细图文)

    使用Navicat连接opengauss数据库完整步骤(详细图文)

    Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设,下面这篇文章主要给大家介绍了关于使用Navicat连接opengauss数据库的完整步骤,需要的朋友可以参考下
    2024-02-02
  • 详解SQL中Group By的使用教程

    详解SQL中Group By的使用教程

    这篇文章主要介绍了SQL中Group By的使用,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • SQL语句实现删除重复记录并只保留一条

    SQL语句实现删除重复记录并只保留一条

    这篇文章主要介绍了SQL语句实现删除重复记录并只保留一条,本文直接给出实现代码,并给出多种查询重复记录的方法,需要的朋友可以参考下
    2015-06-06
  • SQL行转列、列转行的简单实现

    SQL行转列、列转行的简单实现

    这篇文章主要给大家介绍了关于SQL行转列、列转行的简单实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • powerdesigner for mysql脚本要求字段、表名有注释操作

    powerdesigner for mysql脚本要求字段、表名有注释操作

    在PowerDesigner中,可以通过修改DBMS设置为MySQL数据库添加字段和表名的注释,具体步骤包括编辑当前的DBMS设置,并在相应的Script选项下调整Column和Table的配置,本文给大家介绍powerdesigner for mysql脚本要求字段、表名有注释操作,感兴趣的朋友跟随小编一起看看吧
    2023-07-07

最新评论