可以先用sql将查询出来的数据行列转换一下,然后直接绑定就可以了 create table cj --创建表cj ( ID Int IDENTITY (1,1) not null, -- Name Varchar(50), Subject Varchar(50), Result Int, primary key (ID) --定义ID为表cj的主键 );
Insert into cj Select '张三','语文',80 union all Select '张三','数学',90 union all Select '张三','物理',85 union all Select '李四','语文',85 union all Select '李四','物理',82 union all Select '李四','英语',90 union all Select '李四','政治',70 union all Select '王五','英语',90 ----原始数据 select * from cj ----标准实现 Declare @sql varchar(8000) Set @sql = 'Select Name as 姓名'--1 Select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']' from (select distinct Subject from cj) as cj --2 把所有唯一的科目的名称都列举出来 Select @sql = @sql+' from cj group by name'--3 Exec (@sql)----一句实现 Select [Name] as 姓名, SUM(case Subject when '数学' then Result else 0 end) [数学], SUM(case Subject when '物理' then Result else 0 end) [物理], SUM(case Subject when '英语' then Result else 0 end) [英语], SUM(case Subject when '语文' then Result else 0 end) [语文], SUM(case Subject when '政治' then Result else 0 end) [政治] from cj group by [Name]drop table cj
-- 测试数据 declare @TempTable table(列1 varchar(10)) insert into @TempTable select 'AAA' union all select 'BBB' union all select 'CCC' -- 处理 declare @Value varchar(8000), @i int select @Value='',@i=1 select @Value=@Value+',[列'+cast(@i as varchar)+']='''+列1+'''' ,@i=@i+1 from @TempTable set @Value=substring(@Value,2,8000) exec('select '+@Value)
(
ID Int IDENTITY (1,1) not null, --
Name Varchar(50),
Subject Varchar(50),
Result Int,
primary key (ID) --定义ID为表cj的主键
);
Insert into cj
Select '张三','语文',80 union all
Select '张三','数学',90 union all
Select '张三','物理',85 union all
Select '李四','语文',85 union all
Select '李四','物理',82 union all
Select '李四','英语',90 union all
Select '李四','政治',70 union all
Select '王五','英语',90
----原始数据
select * from cj
----标准实现
Declare @sql varchar(8000)
Set @sql = 'Select Name as 姓名'--1
Select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']'
from (select distinct Subject from cj) as cj --2 把所有唯一的科目的名称都列举出来
Select @sql = @sql+' from cj group by name'--3
Exec (@sql)----一句实现
Select [Name] as 姓名,
SUM(case Subject when '数学' then Result else 0 end) [数学],
SUM(case Subject when '物理' then Result else 0 end) [物理],
SUM(case Subject when '英语' then Result else 0 end) [英语],
SUM(case Subject when '语文' then Result else 0 end) [语文],
SUM(case Subject when '政治' then Result else 0 end) [政治]
from cj group by [Name]drop table cj
declare @TempTable table(列1 varchar(10))
insert into @TempTable
select 'AAA'
union all select 'BBB'
union all select 'CCC' -- 处理
declare @Value varchar(8000), @i int
select @Value='',@i=1
select @Value=@Value+',[列'+cast(@i as varchar)+']='''+列1+''''
,@i=@i+1
from @TempTable set @Value=substring(@Value,2,8000)
exec('select '+@Value)
/*--测试结果
列1 列2 列3
---- ---- ---- ----
AAA BBB CCC
--*/
Fe_sco 1.负责对全国合作院校进行学术支持
2. 指导各省级代理对合作院校的学术支持活动
3. 负责对院校教师的技术培训
职位职责 1. 负责对全国合作院校进行学 术支持
2. 指导各省级代理对合作院校的学术支持活动
3. 负责对院校教师的技术培训
任职条件
Net方向:
熟悉C#\VB.NET\PHP\ASP.NET\SQL Server\JavaScript\AJAX等
素质要求:
1、统招本科,性别男。看好IT职业教育行业前景 ,并愿意在这一行业长期发展
2、优秀的个人职业形象及气质
3、极佳的沟通表达能力
4、适应经常出差
5、够承受较大的工作压力
6、有授课经验者优先考虑
差补丰厚 发简历到邮箱
010-65939919 分机号817 [email protected]