这里我的表在MS-SQL中看起来像
ID Name Mark1 Mark2 Grade
1 ABC 50 75 A+
2 XYZ 0 15 A+
3 XYZ 20 0 B+
我需要的结果应该是: -
ID Name Mark1 Mark2
1 ABC 50 75
2 XYZ 20 15
如果ID,姓名是匹配,我需要显示Mark1& Mark2值 在单行但是等级不同,我必须更新 多行请帮忙。
注意: - 最终结果集中不需要成绩,一旦值更新,则不需要第3行我们需要删除第3行。
我已添加: -
输入: -
ID Name Mark1 Mark2 Grade
1 ABC 50 75 A+
2 XYZ 0 15 A+
3 XYZ 20 0 B+
4 ZZZ 30 0 B+
4 ZZZ 40 0 B+
4 ZZZ 50 0 B+
输出: -
ID Name Mark1 Mark2 Grade
1 ABC 50 75 A+
2 XYZ 20 15 A+
4 ZZZ 30 0 B+
4 ZZZ 40 0 B+
4 ZZZ 50 0 B+
答案 0 :(得分:1)
这可以通过group by和MAX函数完成:
SELECT MIN(ID) as ID, Name, MAX(Mark1), MAX(Mark2)
FROM YourTable
GROUP BY Name