SQLServer 使用变量动态行转列
来源:互联网 发布:windows复制粘贴失效 编辑:程序博客网 时间:2024/06/09 14:39
drop table #test
create table #test
(
id int identity(1,1) primary key,
bizDate varchar(50),
type varchar(50),
qty float
)
insert into #test
select '20110501','A',20.5 union all
select '20110501','B',98 union all
select '20110501','C',100.5 union all
select '20110501','A',32 union all
select '20110501','C',76.8 union all
select '20110502','B',58 union all
select '20110502','A',111 union all
select '20110502','A',51 union all
select '20110502','A',85 union all
select '20110502','B',52 union all
select '20110502','C',43 union all
select '20110503','A',158 union all
select '20110503','C',58 union all
select '20110503','B',28 union all
select '20110503','B',65 union all
select '20110503','A',11 union all
select '20110503','A',25 union all
select '20110503','C',63
declare @sql varchar(8000)
set @sql = 'select type'
select @sql = @sql + ' , SUM(CASE WHEN bizDate=''' + bizDate + ''' then qty else 0 end) [' + bizDate + ']'
from (select distinct bizDate from #test) as a order by bizDate--此行的SQL用于找出不重复的日期,也就是结果集中所有的日期
set @sql = @sql + ' from #test A group by type'
print @sql
exec(@sql)
--打印出来的完整SQL是:
select type ,
SUM(CASE WHEN bizDate='20110501' then qty else 0 end) [20110501] ,
SUM(CASE WHEN bizDate='20110502' then qty else 0 end) [20110502] ,
SUM(CASE WHEN bizDate='20110503' then qty else 0 end) [20110503]
from #test A group by type
/*
PS. SQLServer里的中括号作用:
若表名、字段名、列名等与数据库里的关键字有冲突,则可以给该表名或字段名加上"[]"以识区别。
上面的例子中是以日期作为列名,也可用"[]"标识
*/
- SQLServer 使用变量动态行转列
- SQLServer--变量的使用
- sqlserver动态行转列
- SQLSERVER变量
- 动态SQL使用绑定变量
- 动态库中不推荐使用static变量
- 在Flash应用中使用动态变量
- 动态变量可以跨函数使用内存
- 使用BeanShell设置JMeter动态变量
- 游标变量、动态sql及变量绑定的使用
- 游标变量、动态sql及变量绑定的使用
- SQLSERVER 存储过程中动态SQL的使用
- SQLServer表变量
- SQLServer变量_循环
- sqlserver中变量
- 动态变量
- 静态变量-动态变量
- SqlServer中的动态Sql
- iPhone SE销量惨淡?看看这些数据就知道了
- SQLServer inner join,left join,right join,outer join 备忘备忘
- Ubuntu搭建subversion+usvn环境
- SQLServer 表连接时使用top 1 去除重复数据
- 如何更改linux文件的拥有者及用户组(chown和chgrp)
- SQLServer 使用变量动态行转列
- 第5周项目1(5) 三角形类锥形
- SQLServer 临时表
- Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
- SQLServer2008 字符串函数一览表
- apk-tool 反编译
- SQLServer XXX IS NOT NULL
- 为redis分配一个新的端口
- Codeforces 366A Dima and Guards 【水题】