MSSQL 行转列问题
测试数据:
create table StudentScore
(
Name varchar(12) NULL,
ClassName varchar(12) NULL,
Grade int NULL
)
INSERT INTO StudentScore(Name,ClassName,Grade)
VALUES
('张三','语文','78'),('张三','数学','79'),('张三','英语','80'),
('张三','物理','81'),('张三','政治','82'),
('李四','语文','84'),('李四','数学','85'),('李四','英语','86'),
('李四','物理','83'),('李四','政治','87'),
('王五','语文','89'),('王五','数学','82'),('王五','英语','90'),
('王五','物理','81'),('王五','政治','91')
创建完测试数据后,SELECT后的结果如图:
要求写一条SQL查询语句,查询结果如下列显示
姓名 语文 数学 英语 物理 政治
张三 78 79 80 81 82
李四 83 84 85 86 87
王五 88 89 90 91 92
1 利用CASE WHEN关键字
SELECT Name,MAX(CASE ClassName WHEN '语文' THEN Grade ELSE 0 END)语文,
MAX(CASE ClassName WHEN '数学' THEN Grade ELSE 0 END)数学,
MAX(CASE ClassName WHEN '英语' THEN Grade ELSE 0 END)英语,
MAX(CASE ClassName WHEN '物理' THEN Grade ELSE 0 END)物理,
MAX(CASE ClassName WHEN '政治' THEN Grade ELSE 0 END)政治
FROM
相关新闻>>
- 发表评论
-
- 最新评论 更多>>