码迷,mamicode.com
首页 > 数据库 > 详细

SQL列转行

时间:2016-09-22 21:22:36      阅读:185      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!