sql server行列转化
- 行列转换:
- 姓名 课程 分数
- 张三 语文 74
- 张三 数学 83
- 张三 物理 93
- 李四 语文 74
- 李四 数学 84
- 李四 物理 94
- 想变成(得到如下结果):
- 姓名 语文 数学 物理
- ---- ---- ---- ----
- 李四 74 84 94
- 张三 74 83 93
- create table sc(姓名 varchar(10),课程 varchar(10),分数 float)
- insert into sc
- select '张三','语文',74
- union
- select '张三','数学',83
- union
- select '张三','物理',93
- union
- select '李四','语文',74
- union
- select '李四','数学',84
- union
- select '李四','物理',94
- 方法1:
- declare @sql varchar(max)
- set @sql='select '
- select @sql=@sql+', max(case when 课程='''+课程+''' then 分数 else '''' end)['+课程+']' from (select distinct 课程 from sc)t
- set @sql = STUFF(@sql,8,1,'')
- print @sql
- set @sql=@sql+' ,姓名 from sc group by 姓名'
- exec(@sql)
- 方法2:
- select 姓名,数学,物理,语文 from sc pivot( max(分数) for 课程 in(数学,物理,语文))t
- 方法3:
- declare @sql varchar(8000)
- select @sql = isnull(@sql + '],[' , '') + 课程 from sc group by 课程
- print @sql
- set @sql = '[' + @sql + ']'
- exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')
sql server行列转化的更多相关文章
- sql server行列转化和行列置换
行列转换: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- - ...
- SQL Server 行列转换
/* 标题:普通行列转换(version 2.0) 作者:范中磊 说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql ...
- [转载]SQL Server行列转换实现
可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_ ...
- 12、SQL Server 行列转换
SQL Server 行转列 在SQL Server 2005中PIVOT 用于将列值转换为列名(行转列),在SQL Server 2000中是没有这个关键字的 只能用case语句实现. --创建测试 ...
- SQL Server 行列相互转换命令:PIVOT和UNPIVOT使用详解
一.使用PIVOT和UNPIVOT命令的SQL Server版本要求 1.数据库的最低版本要求为SQL Server 2005 或更高. 2.必须将数据库的兼容级别设置为90 或更高. 3.查看我的数 ...
- sql server 行列互转
1 列转行 测试脚本 ),课程 ),分数 int) ) ) ) ) ) ) go 转化脚本 select 姓名 , end) 语文, end) 数学 , end) 物理 from tb group b ...
- SQL SERVER 行列转换(动态)
行转列测试数据: --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([Name] nvar ...
- sql server 时间
sql server 获取月份天数:1,SELECT 32-DAY(CAST('2015-03-01' as datetime)+32-DAY(CAST('2015-03-01' as datetim ...
- SQL Server中行列转换 Pivot UnPivot
SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...
随机推荐
- ORA-12541:无监听错误解决办法
http://jingyan.baidu.com/article/03b2f78c7a0ab75ea237ae33.html 1. 从开始菜单中打开“Oracle Net Configuratio ...
- python基础篇之进阶
python基础篇之进阶 参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html python种类 1. cpython 使用c解释器生产 ...
- ActiviMQ(1)
1. ActiviMQ是实现JMS接口和规范的消息中间件(Provider), 2. JMS,Java Message Service, java消息服务,是JavaEE中的一个技术 3. JMS规范 ...
- 让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能
你的 Nginx 已经有了 RTMP 直播功能的话,如果你还想统计某直播频道当前观看用户量的话,可以加入 with-http_xslt_module 模块.具体步骤如下: 1.查看原来的 ...
- memcache常见问题及解答
memcached的cache机制是怎样的? Memcached主要的cache机制是LRU(最近最少用)算法+超时失效.当您存数据到memcached中,可以指定该数据在缓存中可以呆多久Which ...
- Cassandra学习五 使用Key的正确姿势
NoSQL一般是反范式的,比如提倡数据冗余,使得不至于写出非常复杂的SQL语句. Cassandra之中一共包含下面5中Key: Primary Key: 用来获取某一行的数据,可以是一列或多列 ...
- python' s fifth day for me dict
字典 dict : key--vlaue 储存大量的数据,而且是关系型数据,查询速度快(二分查询) 数据类型分类: 可变数据类型(不可哈希):list(列表) , dict(字典), set(集合) ...
- FFmpeg新版本(2016年10月份以后) 支持硬件解码
FFmpeg provides a subsystem for hardware acceleration. Hardware acceleration allows to use specific ...
- ssh免密连接远程服务器
ssh免密连接远程服务器 借助ssky-keygen和ssh-copy-id工具,通过4个简单的步骤实现无需输入密码登录远程Linux主机 1 生成密钥 通过内置的工具生成RSA算法加密的密钥 ssh ...
- 【原创】基于UDP广播的局域网Web Window Service日志跟踪小工具
一直感觉Web开发或者windows服务的日志跟踪调试不是很方便 特别是在生产环境服务器上面 目前一般的解决方案是通过各种日志工具把错误信息和调试信息 ...