灭魂师
2016-03-23 01:24
采纳率: 100%
浏览 2.4k

一道关于数据库的面试题,看着很简单,但我就是不会写。求指导

如果在oracle中如何写这SQL语句?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • bdmh 2016-03-23 01:33
    已采纳
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • bdmh 2016-03-23 01:26

    这就是竖表变横表,用case语法汇总,或者用PIVOT(sqlserver方法)

    评论
    解决 无用
    打赏 举报
  • 把分全给哥 2016-03-23 02:39
    评论
    解决 无用
    打赏 举报
  • haoxiaxia 2016-03-28 13:06

    本人菜鸟一枚。以下是我想到的一种方法:

    ---行转列
    create table tb(
    name varchar(10),
    subject varchar(10),
    result int);

    insert into tb values ('张三','语文',74);
    insert into tb values ('张三','数学',83);
    insert into tb values ('李四','语文',80);
    insert into tb values ('李四','数学',86);

    select * from tb;

    -----输出格式如下----
    姓名 语文 数学
    张三 74 83
    李四 80 86

    select name,
    sum(case when subject='语文' then result end )as 语文,
    sum(case when subject='数学' then result end) as 数学
    from tb
    group by name
    ;

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题