SQL Server行列转换

article/2025/9/27 21:53:39

1、行列转换

创建创建学生成绩表并添加学生成绩信息。

/*-创建学生成绩表-*/
CREATE TABLE StuScore 
(StuName VARCHAR(20),  --姓名Subject VARCHAR(20),  --科目Score INT             --成绩   
);/*-添加学生成绩信息-*/
INSERT INTO StuScore  VALUES('张三','语文',60);
INSERT INTO StuScore  VALUES('张三','数学',80);
INSERT INTO StuScore  VALUES('张三','英语',70);
INSERT INTO StuScore  VALUES('李四','语文',50);
INSERT INTO StuScore  VALUES('李四','数学',90);
INSERT INTO StuScore  VALUES('李四','英语',60);
INSERT INTO StuScore  VALUES('王五','语文',80);
INSERT INTO StuScore  VALUES('王五','数学',40);

1.1 使用Case WHEN 实现行转列

/*-使用Case WHEN 实现行转列-*/
SELECT StuName AS '姓名',MAX(CASE Subject WHEN '语文' THEN Score ELSE 0 END) AS '语文',MAX(CASE Subject WHEN '数学' THEN Score ELSE 0 END) AS '数学',MAX(CASE Subject WHEN '英语' THEN Score ELSE 0 END) AS '英语',SUM(Score) AS '总分',AVG(Score) AS '平均分'
FROM StuScore 
GROUP BY StuName

执行结果:

1.2 使用PIVOT实现行转列

/*-使用PIVOT实现行转列-*/
SELECT PVT.StuName AS '姓名',PVT.语文,PVT.数学,PVT.英语
FROM StuScore
PIVOT(MAX(Score) FOR Subject IN(语文,数学,英语)) AS PVT

执行结果:

2、列行转换

创建创建学生成绩表2并添加学生成绩信息。

/*-创建学生成绩表2-*/
CREATE TABLE StuScore2
(StuName VARCHAR(20),  --姓名Chinese INT,          --语文成绩Mathematical INT,     --数学成绩English INT           --英语成绩   
);/*-添加学生成绩信息-*/
INSERT INTO StuScore2 VALUES('张三',60,80,70);
INSERT INTO StuScore2 VALUES('李四',50,90,60);
INSERT INTO StuScore2 VALUES('王五',80,40,50);

2.1 使用UNION实现列转行

/*-使用UNION实现列转行-*/
SELECT * FROM (SELECT StuName AS '姓名', '语文' AS '科目', Chinese AS '成绩' FROM StuScore2UNION ALL SELECT StuName AS '姓名', '数学' AS '科目', Mathematical AS '成绩' FROM StuScore2UNION ALL SELECT StuName AS '姓名', '英语' AS '科目', English AS '成绩' FROM StuScore2
) T

执行结果:

2.2 使用UNPIVOT实现列转行

/*-使用UNPIVOT实现列转行-*/
SELECT * 
FROM StuScore2
UNPIVOT(Score FOR Subject IN(Chinese,Mathematical,English)) T

执行结果:

 


http://chatgpt.dhexx.cn/article/TpaMsh3a.shtml

相关文章

SQL 行列转换

方法1 select name, sum(case when course物理 then score else 0 end) as 物理, sum(case when course英语 then score else 0 end) as 英语 from T1方法2 动态SQL命令的执行效率往往不高,因为动态拼接的原因,导致数据库(查询优化器&…

SQL:行列转换

参考自:https://www.cnblogs.com/janneystory/p/5622142.html 案例: 表scores 请转成的横表是这样子的: 答案; select 姓名, SUM(case 课程 when 语文 then 分数 else 0 end) as 语文, SUM(case 课程 when 数学 then 分数 else 0 end) a…

【SQL】MySQL 数据库的行列转换

报表系统中经常需要行列转换,在 SQL Server 等数据库中可以用 PIVOT 、UNPIVOT 来实现,但是在 MySQL 数据库中却不支持,下面介绍 MySQL 中的行列转换的实现方法。 1.行转列 例如下面是数据库中的原始表格: namesubjectscore张三…

SQL四种方法实现行列转换超详细

前言 大家好,我是楚生辉,在未来的日子里我们一起来学习大数据SQL相关的技术,一起努力奋斗,遇见更好的自己! 本文详细的介绍了多个方法实现列转行,行转列,并提供了案例的材料,有需要的…

什么是xml解析?xml解析的有几种常用的解析方式?

xml解析概述 XML解析主要为两种:DOM和SAX解析 DOM:文档对象模型,这种方式是W3C推荐的处理XML的一种方式 SAX解析不是官方标准,属于开源社区XML-DEV,几乎所有的XML解析器都支持它 XML解析开发包: JAXP:是sun公司推出的解析标准实…

JAVA解析xml的五种方式比较

1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分,是W3C的官方标准【优点】①允许应用程序对数据和结构做出更改…

XML解析的几种方式

xml的四种解析方式实例 一、DOM(Document Object Model)解析方式 在应用程序中,基于DOM的xml分析器将xml文档解析成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对xml数据的操作.通过DOM接口应用程序可以在任何时候访问…

C++解析XML文件

新的一周又来啦,这周我要分享的是使用C库解析XML文件和JSON文件,在本篇博客中我主要讲解析XML文件的相关知识,在下篇博客讲述有关解析JSON文件的相关。在解析XML文件时我使用的解析库是tinyXML2,编译平台是VS2019。希望看完本篇博客能对你有所…

解析XML的几种方式

XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API fo…

C# 读取XML文件的几种方式

在开发过程中,我们有时会需要保存到本地一些结构化数据或者配置信息,这时就可以选择用xml文件。当然xml的用途也不仅仅是这些。 这一篇来谈一谈关于读取xml文件的几种方式; 我们有以下两个文件,一个是带有id属性的,一个…

Android解析XML的三种方式

在Android中提供了三种解析XML的方式:DOM(Document Objrect Model),SAX(Simple API XML),以及Android推荐的Pull解析方式. 如图: 本篇博客使用的xml文件如下:(这里是获取网络XML)person.xml <?xml version="1.0" encoding="UTF-8"?> <pers…

XML解析之SAX方式

XML文件解析方式之一是SAX方式&#xff0c;SAX解析方式会逐行地去扫描XML文档&#xff0c;当遇到标签时会触发解析处理器&#xff0c;采用事件处理的方式解析XML (Simple API for XML) 。SAX是一个用于处理XML事件驱动的“推”模型&#xff0c;虽然不是官方标准&#xff0c;但它…

实现XML解析的几种技术

XML在各种开发中都广泛应用&#xff0c;Android也不例外。作为承载数据的一个重要角色&#xff0c;如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法。 在Android中&#xff0c;常见的XML解析器分别为SAX解…

MATLAB中的均值与方差求法(mean,var,std函数使用)

目录 均值-mean()函数的用法方差var函数std函数 均值-mean()函数的用法 对于矩阵A&#xff1a; &#xff08;1&#xff09;mean(A,1)为对矩阵A的列求均值 &#xff08;2&#xff09;mean(A,2)为对矩阵A的行求均值 &#xff08;3&#xff09;mean(A)当传入的参数只有矩阵时&a…

matlab怎么方差函数,密度函数已知,怎么用matlab求其数学期望和方差?

在没有先验知识的情况下是不可能的&#xff0c;在你已知它可能是哪种分布(或者哪些种分布之一)的情况下可以求出分布的参数www.mh456.com防采集。 因为你的是密度函2113数&#xff0c;所以不会5261是离散型随机变量&#xff0c;如果你有4102概率密度函数的表达式的话&#xff0…

matlab怎么算方差和标准差,matlab怎么求矩阵的均值和标准差 看完你就知道了

有时候我们在使用matlab编程计算的时候&#xff0c;想求矩阵的均值和方差&#xff0c;怎么求呢&#xff0c;下面来分享一下方法 工具/材料 matlab 求矩阵的均值和标准差方法 matlab求矩阵均值方法 01 第一步打开matlab命令行窗口&#xff0c;新建一个a[1 2 3;4 5 6;7 8 9]矩阵&…

剩余方差matlab,用matlab的var函数求方差

什么是方差和标准差&#xff1f; 方差(variance) 和标准差(standard variance) 方差&#xff1a;表示一组离散数据偏离平均值的程度。 公式&#xff1a; 方差公式 方差的算术平方根称为该随机变量的标准差。 在Matlab中&#xff0c;方差用var函数求&#xff0c;标准差用std函数…

matlab里方差分析的盒子图怎么看,Matlab方差分析

Matlab 方差分析(T检验) 在工农业生产和科学研究中,经常遇到这样的问题:影响产品产量、质量的因素很多,我们需要了解在这众多的因素中,哪些因素对影响产品产量、质量有显著影响.为此,要先做试验,然后对测试的结果进行分析.方差分析就是分析测试结果的一种方法.在方差分析中,把在…

20171205_Matlab求方差,均值,均方差,协方差的函数

1、 均值 数学定义&#xff1a; Matlab函数&#xff1a;mean >>X[1,2,3] >>mean(X)2 如果X是一个矩阵&#xff0c;则其均值是一个向量组。mean(X,1)为列向量的均值&#xff0c;mean(X,2)为行向量的均值。 >>X[12 3 45 6] >>mean(X,1)[2.5,3.5, 4.5] &g…

方差分析MATLAB实现

单因素方差分析的MATLAB实现 单因素均衡数据的实现 单因素非均衡数据方差分析 p192 8.22 X[85,80,90,88,87,94,56,62,55,48,92,99,95,91,75,72,81];group[ones(1,3),2*ones(1,4),3*ones(1,2),4*ones(1,2),5*ones(1,4),6*ones(1,3)];anova1(X,group); 从箱线图可以看到第2个第五…