当前位置:Gxlcms > 数据库问题 > SQL列转行

SQL列转行

时间:2021-07-01 10:21:17 帮助过:2人阅读

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

标签:

人气教程排行