热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle中greatest()/least函数的使用

原文链接:http:www.2cto.comdatabase201301183036.html已知表TB的数据如下:SQLselect*fromtb
原文链接:
http://www.2cto.com/database/201301/183036.html

 

已知表TB的数据如下:

 

SQL> select * from tb;

 

        ID      CHINESE       MATH    ENGLISH

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

      1001         89                 98            87

      1002         81                 87           79 

 

现在要得到如下的结果:

 

        ID      CHINESE  MATH ENGLISH  MAX       MIN

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

      1001       89  
          98             87          98          87

      1002       81             87             79          87          79

该怎么解决?

 首先自然想到用MAX和MIN函数,但这两个是聚集函数,是要作用在同一列上面的,而现在要得到的MAX和MIN的值却是作用于每一行上面的,如果要借助于MAX()和 MIN(),还需要对原表的数据结构进行行转列处理,复杂度上升。 

Oracle提供了如下函数:

 

SQL> SELECT id, chinese, math, english,

            greatest(chinese, math, english) max,

            least(chinese, math, english) min

     FROM   tb;

 

        ID     CHINESE MATH  ENGLISH   MAX        MIN

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

      1001         89         98             87           98          87

      1002         81         87             79           87          79
推荐阅读
author-avatar
LucifinilC_925
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有