oracle max()函数和min()函数
2016-06-15 15:43
267 查看
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示。
![](http://images.51cto.com/files/uploadimg/20100910/1403460.jpg)
图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示。
![](http://images.51cto.com/files/uploadimg/20100910/1403461.jpg)
图2在WHERE子句中使用子查询返回最大值
MAX()和MIN()函数不仅可以作用于数值型数据,也可以作用于字符串或是日期时间数据类型的数据。
实例MAX()函数用于字符型数据
如下面代码:
SELECT MAX (TNAME) AS MAXNAME
FROM TEACHER
运行结果如图3示。
![](http://images.51cto.com/files/uploadimg/20100910/1403462.jpg)
图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示。
![](http://images.51cto.com/files/uploadimg/20100910/1403463.jpg)
图4COURSE表中最早和最晚考试课程的考试时间
可见,返回结果的数据类型与该列定义的数据类型相同。
注意
确定列中的最大值(最小值)时,MAX( )(MIN( ))函数忽略NULL值。但是,如果在该列中,所有行的值都是NULL,则MAX( )/MIN( )函数将返回NULL值。
相关文章推荐
- Oracle dbms_random
- 简单的PL/SQl链接远程ORACLE数据库方法
- oracle笔记1-FUNCTION 函数
- oracle row_number over()函数用法
- SQL Server 和Oracle 数据类型对应
- mybatis批量插入oracle数据库
- oracle截取字符串并做比较-SUBSTR("字符串",起始位-从1开始数,截取长度)
- ORACLE EXP不能导出空表解决方法
- ORACLE语句多条重复记录中只取一条时间最近的记录
- 数据库连接池 oracle java
- oracle 12C SYS,SYSTEM用户的密码都忘记或是丢失
- Oracle数据库之SQL基础(二)
- oracle的用户、表、表空间三者的关系
- Oracle:表空间
- Oracle如何实现类似MySQL的show create table,show index的功能
- 配置oracle允许远程访问
- oracle 时间戳生成语句(秒级+毫秒级)
- 连接oracle数据库出现oracle ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式
- PLSQL创建oracle数据库用户
- 安装Oracle客户端后,eclipse启动不了;启动之后,Override报错