首页 > 数据库技术 > 详细

SQL列转行

时间:2016-09-22 21:20:00      阅读:212      评论:0      收藏:0      [点我收藏+]

典型实例

一、行转列

1、建立表格

IF OBJECT_ID(tb) IS NOT NULL DROP TABLE tb

go

CREATE TABLE tb(姓名 VARCHAR(10),课程 VARCHAR(10),分数 INT)

insert into tb VALUES (张三,语文,74)
insert into tb VALUES (张三,数学,83)
insert into tb VALUES (张三,物理,93)
insert into tb VALUES (李四,语文,74)
insert into tb VALUES (李四,数学,84)
insert into tb VALUES (李四,物理,94)

go

SELECT * FROM tb

go

姓名       课程       分数

---------- ---------- -----------

张三       语文        74

张三       数学        83

张三       物理        93

李四       语文        74

李四       数学        84

李四       物理        94

 

2、使用SQL Server 2000静态SQL

SELECT 姓名,

 max(CASE 课程 WHEN语文 THEN 分数 ELSE 0 END) 语文,

 max(CASE 课程 WHEN数学 THEN 分数 ELSE 0 END) 数学,

 max(CASE 课程 WHEN物理 THEN 分数 ELSE 0 END) 物理

FROM tb

GROUP BY 姓名

3、使用SQL Server 2005静态SQL

SELECT * FROM tb pivot( MAX(分数) FOR 课程 IN (语文,数学,物理))a

 

SQL列转行

原文:http://www.cnblogs.com/zhangyaoVip/p/5897858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!