sqlserver 行转列
还写了一篇Linq 实现 DataTable 行转列有时间大家可以看一下
sqlserver把行转成列在我们编码中是经常遇到的我做一个小例子大家看一下
1 --创建一个表 2 create table PayPhoneMoney 3 ( 4 id int identity(1,1), 5 userName Nvarchar(20), 6 payType nvarchar(20), 7 money decimal, 8 payTime datetime, 9 constraint pk_id primary key(id)10 )11 --插入点数据12 insert into PayPhoneMoney values('小李','支付宝',20,'2012-01-03')13 insert into PayPhoneMoney values('小陈','工行',20,'2012-01-06')14 insert into PayPhoneMoney values('小赵','交行',50,'2012-01-06')15 insert into PayPhoneMoney values('小陈','支付宝',60,'2012-01-06')16 insert into PayPhoneMoney values('小赵','工行',30,'2012-01-16')17 insert into PayPhoneMoney values('小张','中行',30,'2012-01-16')18 insert into PayPhoneMoney values('小李','支付宝',60,'2012-01-16')
看一下表中的数据
我们要想查一下每个人所有支付形式下的总钱数如图所示
1 -- 查一下每个人所有支付形式下的总钱数2 select userName from PayPhoneMoney group by userName3 select userName,4 sum(case payType when '支付宝' then money else 0 end) as 支付宝 ,5 sum(case payType when '工行' then money else 0 end) as 工行, 6 sum(case payType when '交行' then money else 0 end) as 交行,7 sum(case payType when '中行' then money else 0 end) as 中行8 from PayPhoneMoney 9 group by userName
--我们这只列出了几种支付方式实际中还有很多支付方式不能一个一个都用case when 吧
--可以这样
1 declare @cmdText varchar(8000)2 set @cmdText='select userName, '3 select @cmdText=@cmdText+' sum(case payType when'''+payType+'''Then money else 0 end) as '''+payType4 +''','+char(10) from (select Distinct payType from PayPhoneMoney) T5 print @cmdText--发现多一个逗号下面把逗号去掉6 set @cmdText=left(@cmdText,len(@cmdText)-2)--去掉逗号7 set @cmdText=@cmdText+'from PayPhoneMoney group by userName'8 print @cmdText9 exec(@cmdText)
看一下结果是一样的吧
sqlserver 行转列相关推荐
- oracle行转列和sqlserver行转列语法分析比对
前言 最近遇到一些老项目,在实施过程中需要切换数据库,遇到了好几处行转列的语法,在网上找了一些资料后,都不能很好的解释分析,下面我将个人在工作中遇到的一些问题以及解决方案详细的描述记录下来,如果有遇到 ...
- SqlServer行转列
SQL Server行转列.不确定列的行转列 本文使用的方法: 1.用Case When 2.PIVOT函数 首先,模拟一张表: CREATE TABLE TempSubjectResult ( St ...
- SqlServer行转列列转行
行转列 创建语句: create table test1(id int identity(1,1) not null,name varchar(255) null,course varchar(255 ...
- Sqlserver行转列pivot()
PIVOT概述: PIVOT用于将列值旋转为列名(即行转列),并在必要时对最终输出中所需的任何其余列值执行聚合. PIVOT的一般语法: SELECT [新表字段1,2,3-] FROM [原表名] ...
- SQLServer 行转列,统计,二次分组
create table test ( bizdate datetime, --日期 classes varchar(50), --班次 '白班' 或 '夜班' qty int --产量 ...
- SqlServer 行转列
SELECT 列名+',' FROM 表名 FOR XML PATH('') 转载于:https://www.cnblogs.com/licin/p/6490822.html
- mysql行转列sql函数_sql动态行转列的两种方法
第一种方法: 代码如下: select *from ( select Url,case when Month=01 then '1月' when Month=02 then '2月' when ...
- Linq 实现 DataTable 行转列
前几天写了一篇sqlserver 行转列,http://www.cnblogs.com/li-peng/archive/2012/02/01/2334973.html 由于工作需要,要把查出来的Da ...
- mysql列转行统计查询_Mysql 列转行统计查询 、行转列统计查询
Mysql group_concat函数列转行,与行转列 例一: SELECT num from user 1.使用group_concat函数得到列转行 select group_concat(nu ...
最新文章
- Mvn+Jetty启动项目
- java抽象和接口的理解_Java接口实现与抽象类的区别理解 | 彬菌
- JUST技术:空间连接运算与空间索引
- 一步步使用SAP C4C Cloud Application Studio创建一个BO和对应的屏幕
- Jmeter 新手教程
- 计算机图形学E1——OpenGL 方中有圆,圆中有方,无穷尽焉
- 微信小程序开发学习笔记006--微信小程序组件详解02
- 360 回应安全云盘出现交易异常;苹果官网陆续限购 iPhone;GitHub 屏蔽微软工程师的开源项目 | 极客头条...
- 20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告
- 深入 CoreML 模型定义
- 吃货在东京 -- 记那段吃不饱的日子 之三 筑地的生鱼刺身
- Oracle Order by 按汉字拼音排序
- 玩转基因组浏览器之查看MAF文件
- 淘宝直通车关键数据 如何利用直通车获取手淘搜索流量 如何利用定向操作获得猜你喜欢流量
- linux运维工程师到底是做什么的?
- HDOJ 5142 NPY and FFT
- 如何打开倾斜摄影数据osgb
- SQL--打折日期交叉问题
- 英魂之刃服务器维护在几点,2016英魂之刃8.19有没有维护
- vue分享到qq,qq空间,微信,微博等