首页 > 数据库 >SQL行转列、列转行(SQL Server版)

SQL行转列、列转行(SQL Server版)

时间:2023-02-27 09:55:06浏览次数:41  
标签:val Server 转列 unpivot SQL 科目

在SQL Server中使用SQL实现行转列、列转行,可以使用多种方法,在SQL 2005以前可以使用case when then...语句,但这种方法的问题在于列举的列名要写死,如果列名很多,case when 语句会很长,并不优雅。所以需要SQL Server提供新的语句能够实现。在2005版本就推出了pivot/unpivot关键字,可以方便的实现。这方面的资料已经很多,这里提供一个简单的示例,以便快速上手。

一、SQL列转行

假设有一张表,结构和数据是这样子的:

想转换为如下的形式:

这个就是典型的列转列的形式,需要使用unpivot。

SQL实现:

select 姓名,科目, val from [dbo].[科目成绩]
unpivot (val for 科目 in([语文],[数学],[英语])) as u

二、SQL行转列

现在假设已经有了这张表:

我们借用上面的SQL得到的临时表,将其还原为:

这是典型的行转列的实现,需要用到pivot。

SQL实现:

with aa as(
select 姓名,科目, val from [dbo].[科目成绩]
unpivot (val for 科目 in([语文],[数学],[英语])) as u)

select * from aa pivot(max(val) for 科目 in ([语文],[数学],[英语])) as tt
order by [语文] desc,[数学] desc,[英语] desc;

得到如下表格:

按照语文、数学、英语的分数依次降序排列。

标签:val,Server,转列,unpivot,SQL,科目
From: https://www.cnblogs.com/guwei4037/p/17158658.html

相关文章

  • Mysql 自定义目录安装
    这里教大家安装Mysql的时候自定义安装目录1、Mysql版本我这里选择的是8.0,下边有下载链接,其他的版本也行,操作都是一样的 Mysql8.0下载链接:MySQL::DownloadMySQLInsta......
  • 图解 SQL 的执行顺序,优雅
     SQL是一个声明式语言一个完整的SQL语句会告诉MySqlserver要从那些表中查数据【得到数据集】,对得到的数据集按什么条件进行筛选【where】,按什么规则进行分组、计算......
  • .Net6 微服务之Ocelot+IdentityServer4入门看这篇就够了
    前言.Net6使用Consul实现服务注册与发现看这篇就够了.Net6使用Ocelot+Consul看这篇就够了.Net6微服务之Polly入门看这篇就够了书接上文,本文将继续建立在.N......
  • php怎么连接sqlsrv
    连接MicrosoftSQLServer数据库时,可以使用PHP中的sqlsrv扩展程序来连接数据库。以下是连接MicrosoftSQLServer数据库的一些示例代码:首先,确保已经安装并启用sq......
  • Mysql注入
    查数据库unionselectnull,schema_name,nullfrominformation_schema.schematalimit1,1%23查数据表:unionselect1,table_name,3frominformation_schema.table......
  • 基础10:MySQL数据类型
    一、MySQL中的数据类型类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型......
  • MySQL学习笔记-函数
    MySQL-常用函数select{函数}({参数});select是查询用的,用来展示函数返回值。一.字符串函数常用的字符串函数:1.concat拼接selectconcat('Hello','World');......
  • 《SQL基础》12. SQL优化
    目录SQL优化数据插入insert优化大批量插入数据主键优化orderby优化groupby优化limit优化count优化count用法update优化SQL优化数据插入insert优化如果我们需要一次......
  • MySQL性能优化
    优化的基本原则优化简介基本原则硬件优化参数优化操作系统参数MySQL参数MySQL库表结构优化MySQL语句及索引优化优化的基本原则优化简介所谓MySQL优......
  • 使用Kyuubi 解锁 Spark SQL on CDH 6
    背景CDH最后一个免费版6.3.2发布一年有余,离线计算核心组件版本停在了Hadoop3.0.0,Hive2.1.1,Spark2.4.0。随着Spark3.0的重磅发布,在性能方面又迎来了一次飞跃,本文......