• oracle max()函数和min()函数


    当需要了解一列中的最大值时,可以使用MAX()函数;同样,当需要了解一列中的最小值时,可以使用MIN()函数。语法如下。

    SELECT          MAX (column_name) / MIN (column_name)

    FROM            table_name

    说明:列column_name中的数据可以是数值、字符串或是日期时间数据类型。MAX()/MIN()函数将返回与被传递的列同一数据类型的单一值。

    实例7 MAX()函数的使用

    查询TEACHER表中教师的最大年龄。实例代码:

    SELECT MAX (AGE) AS MAXAGE

    FROM     TEACHER

    运行结果如图1示。

    图1

    图1TEACHER表中教师的最大年龄

    然而,在实际应用中得到这个结果并不是特别有用,因为经常想要获得的信息是具有最大年龄的教师的教工号、姓名、性别等信息。

    然而SQL不支持如下的SELECT语句。

    SELECT TNAME, DNAME, TSEX, MAX (AGE)

    FROM     TEACHER

    因为聚合函数处理的是数据组,在本例中,MAX函数将整个TEACHER表看成一组,而TNAME、DNAME和TSEX的数据都没有进行任何分组,因此SELECT语句没有逻辑意义。同样的道理,下面的代码也是无效的。

    SELECT TNAME, DNAME, TSEX,SAL ,AGE

    FROM     TEACHER

    WHERE   AGE=MAX (AGE)

    解决这个问题的方法,就是在WHERE子句中使用子查询来返回最大值,然后再基于这个返回的最大值,查询相关信息。

    实例8 在WHERE子句中使用子查询返回最大值

    查询TEACHER表中年纪最大的教师的教工号、姓名、性别等信息。

    实例代码:

    SELECT TNAME, DNAME, TSEX, SAL, AGE

    FROM     TEACHER

    WHERE   AGE=(SELECT MAX (AGE) FROM    TEACHER)

    运行结果如图2示。

    图2

    图2在WHERE子句中使用子查询返回最大值

    MAX()和MIN()函数不仅可以作用于数值型数据,也可以作用于字符串或是日期时间数据类型的数据。

    实例MAX()函数用于字符型数据

    如下面代码:

    SELECT MAX (TNAME) AS MAXNAME

    FROM     TEACHER

    运行结果如图3示。

    图3

    图3在字符串数据类型中使用MAX的结果

    可见,对于字符串也可以求其最大值。

    说明
     对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推。

    当然,对与日期时间类型的数据也可以求其最大/最小值,其大小排列就是日期时间的早晚,越早认为其值越小,如下面的实例。

    实例 MAX()、MIN()函数用于时间型数据

    从COURSE表中查询最早和最晚考试课程的考试时间。其中COURSE表的结构和数据可参见本书6.1节的表6-1。实例代码:

    SELECT MIN (CTEST) AS EARLY_DATE,

    MAX (CTEST) AS LATE_DATE

    FROM     COURSE

    运行结果如图4示。

    图4

    图4COURSE表中最早和最晚考试课程的考试时间

    可见,返回结果的数据类型与该列定义的数据类型相同。

    注意
     确定列中的最大值(最小值)时,MAX( )(MIN( ))函数忽略NULL值。但是,如果在该列中,所有行的值都是NULL,则MAX( )/MIN( )函数将返回NULL值。

  • 相关阅读:
    代码块;继承;this与super关系;重载与重写对比;类的继承特点;final关键字 (Java Day08)
    变量访问;this关键字;静态;工具类;帮助文档;Math使用;Arrays使用(Java Day07)
    面向对象;类和对象;访问对象;创建对象在内存中的理解;匿名对象;封装和this (Java Day06)
    如何保证 RocketMQ 不丢失消息
    Java-String类型的参数传递问题
    图解前中后序遍历
    一文彻底理解ReentrantLock可重入锁的使用
    聊聊MySQL、HBase、ES的特点和区别
    MySQL vs Java 数据类型
    Multi-Tenancy多租户模式
  • 原文地址:https://www.cnblogs.com/ymj126/p/3912827.html
Copyright © 2020-2023  润新知