更新SQL数据,合并列

时间:2015-03-06 15:14:40

标签: sql sql-server database group-by

我的表格如下:

Name | Maths | Science | Social
-----+-------+---------+-------    
ABC    NULL      A+      NULL
ABC     B       NULL     NULL 
ABC    NULL     NULL      A
XYZ     A       NULL     NULL
XYZ    NULL      B       NULL

情况是每位教师给出的成绩,并以上述格式存储在表格中。学生ABC已经参加了所有的论文并且他的表现有成绩,学生XYZ只出现数学和科学所以他应该只有两个等级

现在我的结果应该是

Name | Maths | Science | Social
-----+-------+---------+-------    
ABC     B        A+        A
XYZ     A        B        NULL 

我正试图用我所有可能的选项来检索它。

1 个答案:

答案 0 :(得分:5)

如果您应用MAX,则会忽略NULL值,并为每个主题返回所需的值:

SELECT Name, MAX(Maths), MAX(Science), MAX(Social)
FROM Grades
GROUP BY Name