ORACLE函数之GREATEST函数详解实例

转载 2018年04月16日 22:35:18

原文:https://blog.csdn.net/liangweiwei130/article/details/36384145

1           语法

GREATEST(expr_1, expr_2, ...expr_n)

2           说明

GREATEST(expr_1, expr_2, ...expr_n)函数从表达式(列、常量、计算值)expr_1, expr_2, ... expr_n等中找出最大的数返回。在比较时,OracIe会自动按表达式的数据类型进行比较,以expr_1的数据类型为准。

 

3    允许使用的位置

过程性语句和SQL语句。

4           示例

4.1            示例一【数值】

expr_1为数值型。按大小进行比较。

全部为数值型,取出最大值为16

SQL>SELECT GREATEST(2, 5, 12, 3, 16, 8, 9) A FROM DUAL;

         A

----------

        16

部分为数值型,但是字符串可以根据expr_1的数据类型通过隐式类型转换转成数值型:

SQL>SELECT GREATEST(2, '5', 12, 3, 16, 8, 9) A FROM DUAL;

         A

----------

        16

部分为数值型,但是字符串不能通过隐式类型转换成数值型会报错,因为字符串A不能转换成数值型:

SQL>SELECT GREATEST(2, 'A', 12, 3, 16, 8, 9) A FROM DUAL;

SELECT GREATEST(2, 'A', 12, 3, 16, 8, 9) A FROM DUAL

 

ORA-01722: 无效数字

 

4.2            示例二【字符串】

expr_1为字符型。按首字母进行比较(如果相等则向下比较

全部为字符型,取出最大值G

SQL>  SELECT GREATEST('A', 'B', 'C', 'D', 'E', 'F','G') A FROM DUAL;

A

-

G

全部为字符型,首字母相等:

SQL>  SELECT GREATEST('A', 'B', 'C', 'D', 'E','GA', 'GAB') A FROM DUAL;

A

---

GAB

部分为字符型,会把非字符型转换成字符型:

SQL>  SELECT GREATEST('A', 6, 7, 5000, 'E', 'F','G') A FROM DUAL;

A

-

G

 

4.3            示例三【时间】

expr_1为时间类型。

全部为时间类型:

SQL>  SELECTGREATEST(sysdate,TO_DATE('2014-08-01','YYYY-MM-DD')) A FROM DUAL;

A

-----------

2014/8/1

 

部分为时间类型,不能进行隐式类型转换:

SQL>  SELECT GREATEST(sysdate,'2014-08-01') A FROMDUAL;

SELECTGREATEST(sysdate,'2014-08-01') A FROM DUAL

 

ORA-01861:文字与格式字符串不匹配

 

4.4            示例四【空值】

使用GREATEST取最大值的时候,当expr为函数的时候,不可避免的会产生空值。产生空值,函数GREATEST会怎么进行处理那:

 

expr_1NULL时:

SQL>  SELECT GREATEST(NULL, 'B', 'C', 'D', 'E','GA', 'GAB') A FROM DUAL;

A

-

 

expr_1不为NULL时,其它的exprNULL时:

SQL>  SELECT GREATEST('A', 'B', 'C', 'D', 'E',NULL, 'GAB') A FROM DUAL;

A

-

 

由上可以发现,只要GREATESTexpr有一个为NULL,都会返回NULL

ORACLE 内置函数之 GREATEST 和 LEAST(比较一行的最大值或最小值)

转载地址:http://dlblog.iteye.com/blog/1274005 Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小...
  • piaoboyijianke1
  • piaoboyijianke1
  • 2015-04-02 11:34:12
  • 4331

oracle常用函数详解(详细)

Oracle SQL 提供了用于执行特定操作的专用函数。这些函数大大增强了 SQL 语言的功能。函数可以接受零个或者多个输入参数,并返回一个输出结果。 Oracle 数据库中主要使用两种类型的函数: ...
  • u011955534
  • u011955534
  • 2013-11-05 16:57:17
  • 14427

oracle 数据库GREATEST /LEAST/COALESCE 函数用法

oralace 中比较大小值得时候我们除了max和main 还有COALESCE / GREATEST /LEAST三种函数来实现 1. COALESCE 返回该表达式列表的第一个非空value。 ...
  • bzhzhc
  • bzhzhc
  • 2016-09-01 13:41:39
  • 2544

mysql中GREATEST()

1、GREATEST(n1,n2,n3...) GREATEST()函数返回输入参数最大值 SELECT GREATEST(zt_time, zy_time, zn_time) FROM 'X...
  • jjl123jjl123
  • jjl123jjl123
  • 2017-02-13 17:21:37
  • 220

oracle函数写法实例

create or replace FUNCTION        F_GET_ACC_ID RETURN number IS PRAGMA AUTONOMOUS_TRANSACTION;--...
  • maqiang88
  • maqiang88
  • 2014-12-26 17:09:06
  • 692

Oracle 事务、过程和函数

Oracle 事务、过程和函数 事务的定义与操作 1.事务的特点 ACID: 2.原子性(atomic...
  • fengsuzhuo1276
  • fengsuzhuo1276
  • 2018-03-07 19:24:46
  • 30

Oracle Greatest()函数

GREATEST The GREATEST function returns the largest expression in a list of expressions. All expre...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2014-03-05 14:27:32
  • 1760

java调用oracle函数

/** * 调用函数取得数据表的ID值 * @param tableName 表名 * @return * @throws SQLException */ public Str...
  • xiongwt
  • xiongwt
  • 2015-06-11 15:20:02
  • 933

ORACLE函数大全

    ...
  • SDMRauquin
  • SDMRauquin
  • 2006-09-22 16:48:00
  • 7038

Oracle函数详解

  • 2009年03月10日 09:53
  • 276KB
  • 下载
收藏助手
不良信息举报
您举报文章:ORACLE函数之GREATEST函数详解实例
举报原因:
原因补充:

(最多只允许输入30个字)