SQL行列互换很方便

---行转列--pivot
create table tempTable
(
 id int primary key identity(1,1),
 Student nvarchar(36),
 [Subject] nvarchar(36),
 Score int,
)

select * from tempTable
insert into tempTable values (‘张三‘,‘语文‘,‘90‘)
insert into tempTable values (‘张三‘,‘语文‘,‘89‘)
insert into tempTable values (‘李四‘,‘语文‘,‘90‘)
insert into tempTable values (‘王五‘,‘语文‘,‘93‘)
insert into tempTable values (‘张三‘,‘数学‘,‘89‘)
insert into tempTable values (‘李四‘,‘数学‘,‘79‘)
insert into tempTable values (‘王五‘,‘数学‘,‘88‘)
insert into tempTable values (‘张三‘,‘英语‘,‘87‘)
insert into tempTable values (‘李四‘,‘英语‘,‘94‘)
insert into tempTable values (‘王五‘,‘英语‘,‘96‘)

select Student,sum(语文)as 语文,sum(数学) as 数学,sum(英语) as 英语  into tempsubject from tempTable pivot(avg(Score) for [Subject] in (语文,数学,英语)) as A group by Student order by 语文 desc

---列转行unpivot
select * from tempsubject
unpivot
(
 Score for [Subject] in(语文,数学,英语)
)
as f

时间: 2024-11-07 20:04:57

SQL行列互换很方便的相关文章

sql行列互换

出现这个结果: sql如下: 1 SELECT y ,sum(case jidu when 1 then sales else 0 end) as yijidu,sum(case jidu when 2 then sales else 0 end) as erjidu from a GROUP BY y;

SQL行列转换6种方法

在进行报表开发时,很多时候会遇到行列转换操作,很对开发人员针对于SQL级别行列转换操作一直不甚理解,今天正好抽空对其进行了一些简单的总结.这里主要列举3种可以实现SQL行列转换的方法,包括通用SQL解法以及Oracle支持解法. 一.测试数据 测试表依旧采用Oracle经典的scott模式下的dept表和emp表,结构如下: DEPT: create table DEPT ( DEPTNO NUMBER(2) not null, DNAME VARCHAR2(14), LOC VARCHAR2(

行列互换

---psydbnew (PSYP_Trends_GetTestStressorAvgPoint)SELECT QuestionNum,     sum(case when BatchClassName='第一批' then AvgPoint else 0 end )as '第一批',     sum(case when BatchClassName='第二批' then AvgPoint else 0 end )as '第二批',     sum(case when BatchClassNam

SQL 行列倒置

SQL的的行列倒置已经不是新知识了,但在博主的技术咨询期间,仍发现其实有很多人并不了解这块,所以在此专门写一篇博客记录.本文将以Mysql为例,并以数据采集指标信息获取为例子.在下面的例子,你可以在sqlfiddle运行. 首先我们需要创建数据库Schema: CREATE TABLE Chart (`createTime` DateTime, `kpi` varchar(30), `field` varchar(30), `value` double); INSERT INTO Chart (

报表如何实现行列互换效果?

通常我们设计的二维的交叉报表,横向的维度和纵向的维度是固定的,而用户希望更希望能根据自己的需要快速转换横向纵向维度来查看报表. 如上图所示,我们通过点击一个按钮或文字,就可将报表的行列维度互相转换,这样的动态转换效果要怎么设置实现呢? 这里我介绍两种方法实现方法: 1. 两张报表超链接 2. 单张报表动态判断 两张报表超链接 实现思路: 二维的交叉报表行列维度有两种情况,我们只需对应两种情况做两张报表,切换的按钮用超链接实现,连接的目标就是另一张报表. 具体实现: 1. 新建一张报表,文件名为行

将二维数组中的行列互换

情景:二维数组可以存储表格数据,还可以根据下标索引加入各种运算,而且图片的关键运算方法也是以二维数组为基础进行矩阵运算的. //创建二维数组 int arr[][] = new int[][]{{1,2,3},{4,5,6},{7,8,9}}; System.out.println("行列互掉前:"); //输出二维数组 printArray(arr); int arr2[][] = new int[arr.length][arr.length]; //调整数组行列数据 for (in

SQL注入语句 (很全)

1.返回的是连接的数据库名and db_name()>02.作用是获取连接用户名and user>03.将数据库备份到Web目录下面;backup database 数据库名 to disk='c:\inetpub\wwwroot\1.db';--4.显示SQL系统版本and 1=(select @@VERSION) 或and 1=convert(int,@@version)--5.判断xp_cmdshell扩展存储过程是否存在and 1=(SELECT count(*) FROM maste

java 二维数组行列互换

代码需求: 对等行等列的二维数组进行 行列 的互换 分析过程 主对角线是保持不变 行列互换即角标互换:[0][1] => [1][0] 循环次数:外层循环行,内层循环每一行的列 示意图 代码实现 public class ArrayReverse { public static void main(String[] args) { int arry[][] = new int[][] {{1,2,3},{4,5,6},{7,8,9}}; reverse(arry); printArray(arr

SQL行列乾坤大挪移

"生活总是这样,有时候,你需要一个苹果,但别人却给了你一个梨." 今天dalao邮件里需要添加一张每月累计长长的图,可是,拿到手上的SQL导出数据不符合我最爱的pyecharts的数据输入格式,头大. 获得到的数据 日期 种类 数量 9012-01-01 香蕉 10 9012-01-01 苹果 99 9012-01-01 梨 9 9012-01-02 香蕉 100 9012-01-02 苹果 999 9012-01-02 梨 99 pyecharts想要的数据 日期 香蕉 苹果 梨 9