• 行列转换:
  1. 姓名 课程 分数
  2. 张三 语文 74
  3. 张三 数学 83
  4. 张三 物理 93
  5. 李四 语文 74
  6. 李四 数学 84
  7. 李四 物理 94
  8. 想变成(得到如下结果):
  9. 姓名 语文 数学 物理
  10. ---- ---- ---- ----
  11. 李四 74   84   94
  12. 张三 74   83   93
  13. create table sc(姓名 varchar(10),课程 varchar(10),分数 float)
  14. insert into sc
  15. select '张三','语文',74
  16. union
  17. select '张三','数学',83
  18. union
  19. select '张三','物理',93
  20. union
  21. select '李四','语文',74
  22. union
  23. select '李四','数学',84
  24. union
  25. select '李四','物理',94
  26. 方法1:
  27. declare @sql varchar(max)
  28. set @sql='select '
  29. select @sql=@sql+', max(case when 课程='''+课程+''' then 分数 else '''' end)['+课程+']' from (select distinct 课程 from sc)t
  30. set @sql = STUFF(@sql,8,1,'')
  31. print @sql
  32. set @sql=@sql+' ,姓名 from sc group by 姓名'
  33. exec(@sql)
  34. 方法2:
  35. select 姓名,数学,物理,语文 from sc pivot( max(分数) for 课程 in(数学,物理,语文))t
  36. 方法3:
  37. declare @sql varchar(8000)
  38. select @sql = isnull(@sql + '],[' , '') + 课程 from sc group by 课程
  39. print @sql
  40. set @sql = '[' + @sql + ']'
  41. exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')

sql server行列转化的更多相关文章

  1. sql server行列转化和行列置换

    行列转换: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- - ...

  2. SQL Server 行列转换

    /* 标题:普通行列转换(version 2.0) 作者:范中磊 说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql ...

  3. [转载]SQL Server行列转换实现

    可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_ ...

  4. 12、SQL Server 行列转换

    SQL Server 行转列 在SQL Server 2005中PIVOT 用于将列值转换为列名(行转列),在SQL Server 2000中是没有这个关键字的 只能用case语句实现. --创建测试 ...

  5. SQL Server 行列相互转换命令:PIVOT和UNPIVOT使用详解

    一.使用PIVOT和UNPIVOT命令的SQL Server版本要求 1.数据库的最低版本要求为SQL Server 2005 或更高. 2.必须将数据库的兼容级别设置为90 或更高. 3.查看我的数 ...

  6. sql server 行列互转

    1 列转行 测试脚本 ),课程 ),分数 int) ) ) ) ) ) ) go 转化脚本 select 姓名 , end) 语文, end) 数学 , end) 物理 from tb group b ...

  7. SQL SERVER 行列转换(动态)

    行转列测试数据: --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([Name] nvar ...

  8. sql server 时间

    sql server 获取月份天数:1,SELECT 32-DAY(CAST('2015-03-01' as datetime)+32-DAY(CAST('2015-03-01' as datetim ...

  9. SQL Server中行列转换 Pivot UnPivot

    SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...

随机推荐

  1. Asp.Net 构架(HttpModule 介绍) - Part.3

    引言 Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进 ...

  2. Unity GUI自适应屏幕分辨率(一)布局自适应

    这里我们先谈第一个问题坐标矩阵变化实现布局自适应. 选取基准尺寸 通常你需要选择一个基准的屏幕尺寸,象现在开发的应用也需要跨平台在iOS(iPhone/iPad)/Android都可以运行,我这边选取 ...

  3. 【Python学习笔记】在OSX下搭建opencv+python环境

    https://jjyap.wordpress.com/2014/05/24/installing-opencv-2-4-9-on-mac-osx-with-python-support/ 参照以上b ...

  4. Winform判断是否已启动

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  5. mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String).

    报错详情: WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) ...

  6. Java Web发布

    记得开始学习Java Web的时候,首先用的是Eclipse开发,但是有一个问题始终没有弄明白,做好的Web项目是如何发布到Tomcat服务器上的呢?最后得到了一个结论,那就是Eclipse这个软件可 ...

  7. spark集群配置以及java操作spark小demo

    spark 安装 配置 使用java来操作spark spark 安装 tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz rm spark-2.4.0-bin-hadoo ...

  8. 使用JAVA爬取网页图片

    经过之前的HttpURLConnection还有各种流的结束,已经可以开始理解怎么下载网页上的一张图片了. 对各种流不理解的话,可以翻翻前面的随笔,讲得都比较详细.在此就不细讲了. 主要流程: 1.H ...

  9. JavaScript第二节

    1.动态属性 引用类型可以动态的添加属性,而基本类型不行. 2.复制变量值 3.检测类型 执行环境和作用域 没有块级作用域 引用类型 1.Object类型 2.Array类型 数组初始化: 检测数组: ...

  10. Unity抗锯齿的设置

    [Unity抗锯齿的设置] "Edit"->"Project Settings"->"Quality",可以质量设置Inspec ...