if object_id('test') is not null drop table test
select '2001' as 年级, '语文' as 课目, 20 as 人数
into test
union select '2001', '数学', 15
union select '2002', '语文', 20
union select '2002', '数学', 15
union select '2003', '语文', 20
union select '2003', '数学', 15select * from testdeclare @s varchar(1000)
set @s = 'select 年级'
select @s = @s + ', sum(case 课目 when ''' + 课目 + ''' then 人数 end) as ' + 课目
from (select distinct 课目 from test) a
set @s = @s + ' from test group by 年级'
exec(@s)drop table test/*
年级 课目 人数
2001 数学 15
2001 语文 20
2002 数学 15
2002 语文 20
2003 数学 15
2003 语文 20
*//*
年级 数许 语文
2001 15 20
2002 15 20
2003 15 20
*/
select '2001' as 年级, '语文' as 课目, 20 as 人数
into test
union select '2001', '数学', 15
union select '2002', '语文', 20
union select '2002', '数学', 15
union select '2003', '语文', 20
union select '2003', '数学', 15select * from testdeclare @s varchar(1000)
set @s = 'select 年级'
select @s = @s + ', sum(case 课目 when ''' + 课目 + ''' then 人数 end) as ' + 课目
from (select distinct 课目 from test) a
set @s = @s + ' from test group by 年级'
exec(@s)drop table test/*
年级 课目 人数
2001 数学 15
2001 语文 20
2002 数学 15
2002 语文 20
2003 数学 15
2003 语文 20
*//*
年级 数许 语文
2001 15 20
2002 15 20
2003 15 20
*/
解决方案 »
- 请教SQL语句
- 语法错误问题!!!!!
- MS SQL 中有没有类似于VB中format的函数,做到? format(0.4,“0.0000”) => “0.4000”这样的格式化小数的效果
- 求一条SQl查询语句!先谢谢各位!
- 请高手赐教
- 高手帮忙(救命呀!)
- sql sql sql 快疯了
- 用vc 和 sql server做ODBC数据库,怎样连到服务器上的sql server数据库?
- IF UPDATE (column) 和 IF (COLUMNS_UPDATED()) 的分别?
- 急急急:A代码奖金的总和525360,B代码奖金的总和1003250,哪个结果是对的?
- 请问~~~如何查询一个表中字段的描述,请高手指点!
- sp_attach_single_file_db报错,请大家看看,如周健大哥有空,也帮忙看看。
--两种方式,一种直接写,一种用动态SQL