码迷,mamicode.com
首页 > 数据库 > 详细

数据库类似行列转换SQL

时间:2014-12-17 19:01:21      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:sql

1、原表test结构如下:

bubuko.com,布布扣


2、我们想要得到的结果为:

bubuko.com,布布扣


3、第一种方法:静态方法,即列固定

SQL如下:

select * from 
(
SELECT date,name,sum(num) num FROM test  GROUP BY date,name
) t
pivot ( sum(num) for t.name in ([alan],[andy],[baicl])) as a


4、第二种方法:动态方法,即列为通过SQL查询获取

SQL如下:

declare @sql nvarchar(4000)

select @sql=isnull(@sql+‘,‘,‘‘)+t.name

from (select distinct quotename(name) as name from test) t

set @sql=‘select * from (SELECT date,name,sum(num) num FROM test  GROUP BY date,name) t pivot ( sum(num) for t.name in (‘+@sql+‘)) as a‘

exec(@sql)


数据库类似行列转换SQL

标签:sql

原文地址:http://yuke198907.blog.51cto.com/4601170/1590978

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!