日期:2014-05-17 浏览次数:20541 次
create table test
(姓名 varchar(12), 日期 varchar(10), 状态 varchar(12))
insert into test
select '张三', '2013-8-9', '正常' union ALL
select '张三', '2013-8-10', '异常' union ALL
select '张三', '2013-8-11', '正常' union ALL
select '张三', '2013-8-12', '异常'
--楼主想要这样:
declare @sql varchar(max)
select @sql=isnull(@sql+',','') +'max(case when 日期='''+日期+''' then 日期 end) ['+日期+']'
from (select distinct 姓名,日期 from test) t
order by t.姓名
select @sql='select 姓名,' +@sql +' from test group by 姓名 '
exec(@sql)
--还是这样:
declare @SQL1 varchar(max)
select @SQL1=isnull(@SQL1+',','') +'max(case when 日期='''+日期+''' then 状态 end) ['+日期+']'
from (select distinct 姓名,日期 from test) t
order by t.姓名
select @SQL1='select 姓名,' +@SQL1 +' from test group by 姓名 '
exec(@SQL1)