首页 > 代码库 > 数据库类似行列转换SQL
数据库类似行列转换SQL
1、原表test结构如下:
2、我们想要得到的结果为:
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。