SQL SERVER-在一行中获取数据

时间:2018-09-07 08:16:21

标签: sql sql-server tsql

我有一个表,其中存储着这样的数据:

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    |   

1 个答案:

答案 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