数据源:姓名    语文    数学    化学
小明     80     null    null
小明     null    90       null
小明     null    null     90要得到的结果为
姓名    语文    数学    化学
小明     90      90       90望高手指点下  sql语句如何实现?

解决方案 »

  1.   

    select 姓名, max(语文)语文, max(数学)数学, max(化学) 化学
    from tb
    group by 
    姓名
      

  2.   

    if object_id('[TB]') is not null drop table [TB]
    go
    create table [TB] (姓名 nvarchar(4),语文 int,数学 int,化学 int)
    insert into [TB]
    select '小明',80,null,null union all
    select '小明',null,90,null union all
    select '小明',null,null,90select * from [TB]
     
    SELECT 姓名,MIN(语文) AS 语文 ,MIN(数学) AS 数学,MIN(化学) AS 化学
    FROM dbo.TB
    GROUP BY 姓名
    /*
    姓名 语文 数学 化学
    小明 80 90 90*/
      

  3.   

    select 姓名,max(语文),min(数学),min(化学) from tb group by 姓名
      

  4.   

    select 姓名 , max(语文) 语文, max(数学) 数学, max(化学) 化学 from tb group by 姓名