输入banner图图片脚本导航/分类

SQL列转行

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列转行

标签: