use@H_404_8@ test
@H_404_8@go@H_404_8@
@H_404_8@if@H_404_8@ @H_404_8@object_ID@H_404_8@(@H_404_8@'@H_404_8@test.dbo.tb@H_404_8@'@H_404_8@) @H_404_8@is@H_404_8@ @H_404_8@not@H_404_8@ @H_404_8@null@H_404_8@ @H_404_8@drop@H_404_8@ @H_404_8@table@H_404_8@ tb
@H_404_8@go@H_404_8@
@H_404_8@--@H_404_8@ 创建数据表@H_404_8@
@H_404_8@create@H_404_8@ @H_404_8@table@H_404_8@ tb
(
姓名 @H_404_8@varchar@H_404_8@(@H_404_8@8@H_404_8@),
课程 @H_404_8@varchar@H_404_8@(@H_404_8@10@H_404_8@),
分数 @H_404_8@int@H_404_8@
)
@H_404_8@go@H_404_8@
@H_404_8@--@H_404_8@测试数据@H_404_8@
@H_404_8@insert@H_404_8@ @H_404_8@into@H_404_8@ tb @H_404_8@
select@H_404_8@ @H_404_8@'@H_404_8@张三@H_404_8@'@H_404_8@,@H_404_8@'@H_404_8@语文@H_404_8@'@H_404_8@,@H_404_8@80 @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
select@H_404_8@ @H_404_8@'@H_404_8@张三@H_404_8@'@H_404_8@,@H_404_8@'@H_404_8@数学@H_404_8@'@H_404_8@,@H_404_8@91 @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@ @H_404_8@
select@H_404_8@ @H_404_8@'@H_404_8@张三@H_404_8@'@H_404_8@,@H_404_8@'@H_404_8@物理@H_404_8@'@H_404_8@,@H_404_8@75 @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
select@H_404_8@ @H_404_8@'@H_404_8@李四@H_404_8@'@H_404_8@,@H_404_8@77 @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
select@H_404_8@ @H_404_8@'@H_404_8@李四@H_404_8@'@H_404_8@,@H_404_8@80 @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
select@H_404_8@ @H_404_8@'@H_404_8@李四@H_404_8@'@H_404_8@,@H_404_8@75@H_404_8@
@H_404_8@go@H_404_8@
--select * from tb
/*@H_404_8@
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
@H_404_8@*/@H_404_8@
@H_404_8@
@H_404_8@@H_404_8@--@H_404_8@代码实现@H_404_8@
@H_404_8@
@H_404_8@select@H_404_8@ 姓名,
(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@语文@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 语文,
(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@数学@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 数学,
(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@物理@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 物理
@H_404_8@from@H_404_8@ tb
@H_404_8@/*@H_404_8@测试结果
姓名 语文 数学 物理
--------------------------
张三 80 0 0
张三 0 91 0
张三 0 0 75
李四 77 0 0
李四 0 80 0
李四 0 0 75
(6 行受影响)
@H_404_8@*/@H_404_8@
@H_404_8@--@H_404_8@这里为了让每个人的数据单行显示,所以就以"姓名"分组统计,@H_404_8@
--@H_404_8@可以使用max,也可以使用sum. 因为 0 在这里不影响统计结果@H_404_8@
@H_404_8@
@H_404_8@select@H_404_8@ 姓名,
@H_404_8@max@H_404_8@(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@语文@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 语文,
@H_404_8@max@H_404_8@(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@数学@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 数学,
@H_404_8@max@H_404_8@(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@物理@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 物理
@H_404_8@from@H_404_8@ tb
@H_404_8@group@H_404_8@ @H_404_8@by@H_404_8@ 姓名
@H_404_8@--------------------------------------------------------------------------
@H_404_8@select@H_404_8@ 姓名,
@H_404_8@sum@H_404_8@(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@语文@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 语文,
@H_404_8@sum@H_404_8@(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@数学@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 数学,
@H_404_8@sum@H_404_8@(@H_404_8@case@H_404_8@ 课程 @H_404_8@when@H_404_8@ @H_404_8@'@H_404_8@物理@H_404_8@'@H_404_8@ @H_404_8@then@H_404_8@ 分数 @H_404_8@else@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@end@H_404_8@) 物理
@H_404_8@from@H_404_8@ tb
@H_404_8@group@H_404_8@ @H_404_8@by@H_404_8@ 姓名
@H_404_8@
--@H_404_8@sql SERVER 2000 动态sql,指课程不止语文、数学、物理这三门课程@H_404_8@
declare@H_404_8@ @H_404_8@@sql@H_404_8@ @H_404_8@varchar@H_404_8@(@H_404_8@8000@H_404_8@)
@H_404_8@set@H_404_8@ @H_404_8@@sql@H_404_8@ @H_404_8@=@H_404_8@ @H_404_8@'@H_404_8@select 姓名 @H_404_8@'@H_404_8@
@H_404_8@select@H_404_8@ @H_404_8@@sql@H_404_8@ @H_404_8@=@H_404_8@ @H_404_8@@sql@H_404_8@ @H_404_8@+@H_404_8@ @H_404_8@'@H_404_8@,max(case 课程 when @H_404_8@'''@H_404_8@ @H_404_8@+@H_404_8@ 课程 @H_404_8@+@H_404_8@ @H_404_8@'''@H_404_8@ then 分数 else 0 end) [@H_404_8@'@H_404_8@ @H_404_8@+@H_404_8@ 课程 @H_404_8@+@H_404_8@ @H_404_8@'@H_404_8@]@H_404_8@'@H_404_8@
@H_404_8@from@H_404_8@ (@H_404_8@select@H_404_8@ @H_404_8@distinct@H_404_8@ 课程 @H_404_8@from@H_404_8@ tb) @H_404_8@as@H_404_8@ a
@H_404_8@set@H_404_8@ @H_404_8@@sql@H_404_8@ @H_404_8@=@H_404_8@ @H_404_8@@sql@H_404_8@ @H_404_8@+@H_404_8@ @H_404_8@'@H_404_8@ from tb group by 姓名@H_404_8@'@H_404_8@
@H_404_8@exec@H_404_8@(@H_404_8@@sql@H_404_8@)
@H_404_8@
/*@H_404_8@测试结果
姓名 语文 数学 物理
--------------------------
李四 77 80 75
张三 80 91 75
(2 行受影响)
@H_404_8@*/@H_404_8@@H_404_8@
============================================================
declare@H_404_8@ @H_404_8@@a@H_404_8@ @H_404_8@table@H_404_8@ (ID @H_404_8@int@H_404_8@,aa @H_404_8@int@H_404_8@)
@H_404_8@insert@H_404_8@ @H_404_8@into@H_404_8@ @H_404_8@@a@H_404_8@
@H_404_8@select@H_404_8@ @H_404_8@1@H_404_8@,@H_404_8@1@H_404_8@ @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
@H_404_8@select@H_404_8@ @H_404_8@1@H_404_8@,@H_404_8@0@H_404_8@ @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
@H_404_8@select@H_404_8@ @H_404_8@2@H_404_8@,@H_404_8@0@H_404_8@ @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
@H_404_8@select@H_404_8@ @H_404_8@3@H_404_8@,@H_404_8@1@H_404_8@ @H_404_8@union@H_404_8@ @H_404_8@all@H_404_8@
@H_404_8@select@H_404_8@ @H_404_8@3@H_404_8@,@H_404_8@0@H_404_8@
@H_404_8@select@H_404_8@ @H_404_8@*@H_404_8@ @H_404_8@from@H_404_8@ @H_404_8@@a@H_404_8@
@H_404_8@select@H_404_8@ ID,
(@H_404_8@CASE@H_404_8@ aa @H_404_8@WHEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@THEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@ELSE@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@END@H_404_8@) @H_404_8@AS@H_404_8@ @H_404_8@'@H_404_8@1@H_404_8@'@H_404_8@,
(@H_404_8@CASE@H_404_8@ aa @H_404_8@WHEN@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@THEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@ELSE@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@END@H_404_8@) @H_404_8@AS@H_404_8@ @H_404_8@'@H_404_8@0@H_404_8@'@H_404_8@
@H_404_8@from@H_404_8@ @H_404_8@@a@H_404_8@
@H_404_8@select@H_404_8@ ID,
@H_404_8@SUM@H_404_8@(@H_404_8@CASE@H_404_8@ aa @H_404_8@WHEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@THEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@ELSE@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@END@H_404_8@) @H_404_8@AS@H_404_8@ @H_404_8@'@H_404_8@1@H_404_8@'@H_404_8@,
@H_404_8@SUM@H_404_8@(@H_404_8@CASE@H_404_8@ aa @H_404_8@WHEN@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@THEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@ELSE@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@END@H_404_8@) @H_404_8@AS@H_404_8@ @H_404_8@'@H_404_8@0@H_404_8@'@H_404_8@
@H_404_8@from@H_404_8@ @H_404_8@@a@H_404_8@ @H_404_8@GROUP@H_404_8@ @H_404_8@BY@H_404_8@ ID
@H_404_8@select@H_404_8@ ID,
@H_404_8@max@H_404_8@(@H_404_8@CASE@H_404_8@ aa @H_404_8@WHEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@THEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@ELSE@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@END@H_404_8@) @H_404_8@AS@H_404_8@ @H_404_8@'@H_404_8@1@H_404_8@'@H_404_8@,
@H_404_8@max@H_404_8@(@H_404_8@CASE@H_404_8@ aa @H_404_8@WHEN@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@THEN@H_404_8@ @H_404_8@1@H_404_8@ @H_404_8@ELSE@H_404_8@ @H_404_8@0@H_404_8@ @H_404_8@END@H_404_8@) @H_404_8@AS@H_404_8@ @H_404_8@'@H_404_8@0@H_404_8@'@H_404_8@
@H_404_8@from@H_404_8@ @H_404_8@@a@H_404_8@ @H_404_8@GROUP@H_404_8@ @H_404_8@BY@H_404_8@ ID
@H_404_8@/*@H_404_8@
1 1
1 0
2 0
2 0
3 1
3 1
3 0
1 1 0
1 0 1
2 0 1
2 0 1
3 1 0
3 1 0
3 0 1
1 1 1
2 0 2
3 2 1
1 1 1
2 0 1
3 1 1
@H_404_8@*/@H_404_8@
@H_404_8@
PS:@H_404_8@@H_404_8@
http://topic.csdn.net/u/20080920/15/61bf31bf-518c-41be-9e4a-b166c878dcaf.HTML?12972@H_404_8@@H_404_8@@H_404_8@
总结以上是内存溢出为你收集整理的SQLServer之行列转换全部内容,希望文章能够帮你解决SQLServer之行列转换所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)