我有一个表,其中存储着这样的数据:
student| first_name | last_name | age |
------------------------------------------------
A | ALEX | NULL | NULL | NULL |
A | NULL | BEN | NULL | NULL |
A | NUL | NULL | NULL | 10 |
B | SAM | NULL | NULL | NULL |
B | NULL | NULL | NULL | 15 |
SQL Server中是否有一种获取这样的数据的方法:
student| first_name| last_name | age |
------------------------------------------------
A | ALEX | BEN | 10 |
B | SAM | NULL | 15 |
答案 0 :(得分:3)
在公共列上使用group by
,对于每个公共列只有一个值的列使用max()
select student, max(first_name) first_name, max(last_name) last_name, max(age) age
from yourtable
group by student