免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4855 | 回复: 4
打印 上一主题 下一主题

[求助] 今天的一道面试题,看着简单但是不会。。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-03-22 21:40 |只看该作者 |倒序浏览
求大神教我

论坛徽章:
7
亥猪
日期:2013-10-10 17:00:29辰龙
日期:2013-10-12 16:23:19卯兔
日期:2013-11-18 17:01:27金牛座
日期:2014-09-09 10:17:052015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之柏太阳神
日期:2015-09-25 13:56:42数据库技术版块每日发帖之星
日期:2016-08-06 06:20:00
2 [报告]
发表于 2016-03-23 15:54 |只看该作者
  1. 1. 非常规
  2. with tb (name,subject,result) as (
  3. select 'A','语文',74 from dual
  4. union all
  5. select 'A','数学',83 from dual
  6. union all
  7. select 'A','物理',93 from dual
  8. union all
  9. select 'B','语文',74 from dual
  10. union all
  11. select 'B','数学',84 from dual
  12. union all
  13. select 'B','物理',94 from dual
  14. ) select * from tb pivot(max(result) for subject in ('语文','数学','物理'));
  15. 2.常规
  16. with tb (name,subject,result) as (
  17. select 'A','语文',74 from dual
  18. union all
  19. select 'A','数学',83 from dual
  20. union all
  21. select 'A','物理',93 from dual
  22. union all
  23. select 'B','语文',74 from dual
  24. union all
  25. select 'B','数学',84 from dual
  26. union all
  27. select 'B','物理',94 from dual
  28. ) select name,
  29. max(case subject when '语文' then result else 0 end) 语文,
  30. max(case subject when '数学' then result else 0 end) 数学,
  31. max(case subject when '物理' then result else 0 end) 物理
  32. from tb
  33. group by name;
复制代码

论坛徽章:
459
亥猪
日期:2014-05-31 12:08:03亥猪
日期:2014-05-31 12:07:38亥猪
日期:2014-05-31 12:08:04亥猪
日期:2014-05-31 12:07:43亥猪
日期:2014-05-31 12:07:52亥猪
日期:2014-05-31 12:08:09亥猪
日期:2014-05-31 12:07:51亥猪
日期:2014-05-31 12:08:02亥猪
日期:2014-05-31 12:07:59亥猪
日期:2014-05-31 12:07:37亥猪
日期:2014-05-31 12:07:50亥猪
日期:2014-05-31 12:07:39
3 [报告]
发表于 2016-04-07 17:07 |只看该作者
回复 2# li0924


    怎么跑这里拽SQL 了

论坛徽章:
43
15-16赛季CBA联赛之上海
日期:2020-11-04 09:36:5515-16赛季CBA联赛之北控
日期:2018-10-29 18:20:3415-16赛季CBA联赛之北京
日期:2018-10-06 21:39:5715-16赛季CBA联赛之天津
日期:2018-08-09 10:30:41ChinaUnix元老
日期:2018-08-03 17:26:00黑曼巴
日期:2018-07-13 09:53:5415-16赛季CBA联赛之吉林
日期:2018-03-30 12:58:4315-16赛季CBA联赛之佛山
日期:2017-12-01 10:26:3815-16赛季CBA联赛之上海
日期:2017-11-14 09:20:5015-16赛季CBA联赛之江苏
日期:2019-02-20 09:53:3319周年集字徽章-庆
日期:2019-08-27 13:23:2515-16赛季CBA联赛之广夏
日期:2019-09-03 18:29:06
4 [报告]
发表于 2016-04-12 16:15 |只看该作者
  1. with a as (select name ,result from tb where subject = '语文' ),
  2. b as (select name ,result from tb where subject = '数学' ),
  3. c as (select name ,result from tb where subject = '物理' )
  4. select a.name,a.result,b.result,c.result
  5. from a, b, c where a.name = b.name and b.name =c.name ;
复制代码
看看这个行不?

论坛徽章:
0
5 [报告]
发表于 2016-04-15 18:36 |只看该作者
新手,刚刚学的:
  1. SELECT NAME
  2. ,      SUM(DECODE(SUBJECT,'语文',RESULT)) 语文
  3. ,      SUM(DECODE(SUBJECT,'数学',RESULT)) 数学
  4. ,     SUM(DECODE(SUBJECT,'物理',RESULT)) 物理
  5. FROM TB
  6. GROUP BY NAME;
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP