zoukankan      html  css  js  c++  java
  • sqlserver 行转列 语文,数学,物理,化学

    数据库查询行转列

    1.原数据库值

    stdname    stdsubject    result
    张三          语文        80
    张三          数学        90
    张三          物理        85
    李四          语文        85
    李四          数学        92
    李四          物理        82
    李四          化学        82
    李四          化学        82

    2.要得到如下表

    stdname    语文    数学    物理    化学
    李四        85     92      82    164
    张三        80     90      85    NULL

    3.实现方法

    --第一种 调用行转列函数
    select * from (select stdname,stdsubject,result from test1 ) as a 
    pivot(sum(result) for stdsubject in (语文,数学,物理,化学)) t
    
    --第二种 自己写
    select stdname,
    语文 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = '语文' )
    ,数学 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = '数学' )
    ,物理 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = '物理' )
    ,化学 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = '化学' )
    from test1 as a 
    group by stdname
  • 相关阅读:
    开学第二周java作业暨动手动脑p1
    开学第一周
    暑假第九周
    暑假第八周
    bzoj4033:[HAOI2015]树上染色
    bzoj4472:[Jsoi2015]salesman
    dp专题复习
    bzoj1864:[Zjoi2006]三色二叉树
    bzoj1190:[HNOI2007]梦幻岛宝珠
    bzoj2794:[Poi2012]Cloakroom
  • 原文地址:https://www.cnblogs.com/wenming205/p/3851884.html
Copyright © 2011-2022 走看看