select name, sum(decode(project, '语文', grade, 0)) as 语文, sum(decode(project, '数学', grade, 0)) as 数学, sum(decode(project, '英语', grade, 0)) as 英语 from cj group by name select name, sum(case when project = '语文' then grade else 0 end) as ch, sum(case when project = '数学' then grade else 0 end) as m, sum(case when project = '英语' then grade else 0 end) as e from cj t group by name;