当前位置:  数据库>oracle

Oracle中自连接和case when,decode的应用

    来源: 互联网  发布时间:2017-03-24

    本文导语:   有表如下:   sql@kokooa>select * from test026;   ID NAME                 SUBJECT                   SCORE   ---------- -------------------- -------------------- ----------   1 jim                  语文          ...

  有表如下:

  sql@kokooa>select * from test026;

  ID NAME                 SUBJECT                   SCORE

  ---------- -------------------- -------------------- ----------

  1 jim                  语文                         88

  1 jim                  数学                         84

  1 jim                  英语                         90

  2 kate                 语文                         86

  2 kate                 数学                         76

  2 kate                 英语                         96

  想得到如下效果:

  学生编号 学生姓名   语文 数学 英语

  方法:

  1.自连接:(这是自连接很典型的用处 应当熟练掌握)

  sql@kokooa> select a.id,a.name,a.score as "语文",b.score as "数学",c.score as "英语"

  2   from test026 a,test026 b,test026 c

  3   where a.id=b.id and a.subject='语文' and b.subject='数学'

  4   and a.id=c.id and c.subject='英语';

  ID NAME                       语文       数学       英语

  ---------- -------------------- ---------- ---------- ----------

  1 jim                            88         84         90

  2 kate                         86         76         96

  2 使用case when

  sql@kokooa>select id,name,

  2 sum(case when subject='语文' then score end) as "语文",

  3 sum(case when subject='数学' then score end) as "数学",

  4 sum(case when subject='英语' then score end) as "英语"

  5   from test026

  6 group by id,name

  7 /

  ID NAME                       语文       数学       英语

  ---------- -------------------- ---------- ---------- ----------

  1 jim                           88         84         90

  2 kate                         86         76         96

  3 decode

  1 select max(id) as id,name,

  2 max(decode(subject,'数学',score)) as "数学",

  3 max(decode(subject,'语文',score)) as "语文",

  4 max(decode(subject,'英语',score)) as "英语"

  5 from test026

  6* group by name

  sql@kokooa>/

  ID NAME                       数学       语文       英语

  ---------- -------------------- ---------- ---------- ----------

  1 jim                          84         88         90

  2 kate                         76         86         96


    
 
 

您可能感兴趣的文章:

  • 网间Oracle的连接,远程连接Oracle服务器??
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • 不想装oracle却还要在redhat8.0下用jdbc连接oracle如何实现?
  • 我用JBuilder 7连接局域网内一ORACLE 9( 在本机可以连接)的问题?
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • oracle 数据库连接分析
  • Linux系统下利用java连接Oracle 10G
  • Jbuilder 7.0 连接 Oracle 数据库
  • 怎么直接通过JDBC连接oracle?
  • 请教: Javaswing 和 Oracle JDBC thin 连接的问题
  • opendbx 为什么连接不上oracle?
  • 100分寻求最优化的连接oracle的java程序,请给我讲出理由,我是初学者,在做项目时不想让连接oracle影响我的程序性能
  • 如何在JBuilder中连接Oracle数据库?
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • 请教JSP与ORACLE连接问题。
  • jdbc连接oracle
  • 关于Jbuilder7连接oracle9??
  • 再问java 连接oracle 问题,急!
  • jsp文件连接oracle失败
  • 讨论:jdbc连接oracle数据库
  • 哪位兄弟用过oracle的J2EE应用服务器IAS?据说“在应用服务器领域:Oracle第一,IBM第二,BEA第三”
  • Oracle、应用服务器(weblogic)一般安装在那个目录下好!
  • 请问保存文章内容的字段应用什么类型的(oracle),急!!!
  • unix通过crontab 定时启动oracle应用程序??????????
  • 成功实现应用程序和Oracle客户端一起打包
  • ORACLE数据库应用开发常见问题及排除
  • Oracle一个用户如何访问其它用户的表应用指南
  • Linux(Oracle系统在上面)系统无缘无故死机 , 可能是由于应用程序引起 , 可是由于重新启动查不到相关信息 , 不知道在哪里有记录系统CPU Lo
  • oracle异常(预定义异常,自定义异常)应用介绍
  • 详解如何应用改变跟踪技术加速Oracle递增备份
  • 用Oracle9ias开发无线应用程序开发者网络Oracle
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle中decode函数的用法
  • MySQL实现类似Oracle中的decode()函数的功能
  • mysql仿oracle的decode效果查询
  • Oracle 函数用法之decode
  • 使用Oracle的Decode函数进行多值判断
  • oracle中的decode的使用介绍
  • oracle中decode函数的使用方法
  • Oracle DECODE函数语法使用介绍
  • Oracle Decode()函数使用技巧分享
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 请教:.profile中:if [ -d /opt/oracle/db01/app/oracle/product/9.2.0 ]是什么意思?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3