ORACLE函数之GREATEST函数详解实例

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;

SELECTGREATEST(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_1为NULL时:

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

A

-

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

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

A

-

由上可以发现,只要GREATEST的expr有一个为NULL,都会返回NULL。

ORACLE函数之GREATEST函数详解实例

时间: 2024-08-03 23:31:42

ORACLE函数之GREATEST函数详解实例的相关文章

函数WideCharToMultiByte() 详解

函数原型: int WideCharToMultiByte( UINT CodePage, DWORD dwFlags, LPWSTR lpWideCharStr, int cchWideChar, LPCSTR lpMultiByteStr, int cchMultiByte, LPCSTR lpDefaultChar, PBOOL pfUsedDefaultChar ); 函数功能: 此函数把宽字符串转换成指定的新的字符串,如ANSI,UTF8等,新字符串不必是多字节字符集. (---Uni

JS函数动作分层结构详解及Document.getElementById 释义 事件 函数 变量 script标签 var function

html +css 静态页面 js     动态 交互 原理: js就是修改样式, 比如弹出一个对话框. 弹出的过程就是这个框由disable 变成display:enable. 又或者当鼠标指向的时候换一个颜色,就是一个修改样式的工具. 编写JS的流程 布局:HTML+CSS 事件:确定用户做哪些操作(产品设计) 编写JS:在事件中,用JS来修改页面元素的样式(外加属性:确定要修改哪些属性) 什么是事件 一个完整的事件= <在某个作用域 事件声明='函数动作'> </> 作用域:

Oracle ErrorStack 使用和阅读详解

一.概述 在Oracle数据库运行过程中,我们经常会遇到这样或那样的错误,但是错误的提示并不具体,加大了我们在诊断问题时的难度. ErrorStack是Oracle提供的一种对于错误堆栈进行跟踪的方法,通过设置跟踪可以将一些指定错误的后台信息详细的转储出来,写入跟踪文件,帮助我们诊断问题. 备注: 1.当oracle发生关键的错误诸如:ora-600,Errorstack是自动被oracle dump写入trace文件中. 2.当你在alert.log里面看见这类错误,并提示已经产生trace文

常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop data

ORACLE 同义词(SYNONYM)详解

以下内容整理自Oracle 官方文档 一 概念 A synonym is an alias for any table, view,materialized view, sequence, procedure, function, package, type, Java classschema object, user-defined object type, or another synonym. Because a synonymis simply an alias, it requires

[Android]Message,MessageQueue,Looper,Handler详解+实例

转http://www.eoeandroid.com/forum-viewthread-tid-49595-highlight-looper.html 一.几个关键概念 1.MessageQueue:是一种数据结构,见名知义,就是一个消息队列,存放消息的地方.每一个线程最多只可以拥有一个MessageQueue数据结构. 创建一个线程的时候,并不会自动创建其MessageQueue.通常使用一个Looper对象对该线程的MessageQueue进行管理.主线程创建时,会创建一 个默认的Loope

oracle 游标变量ref cursor详解

oracle 游标变量ref cursor详解 分类: PL/SQL开发 2013-12-04 15:15 685人阅读 评论(0) 收藏 举报 oracleref cursor 一 介绍      像游标cursor一样,游标变量ref cursor指向指定查询结果集当前行.游标变量显得更加灵活因为其声明并不绑定指定查询. 其主要运用于PLSQL函数或存储过程以及其他编程语言java等程序之间作为参数传递.     不像游标的一点,游标变量没有参数.     游标变量具有以下属性:     (

oracle中的dual表详解

oracle中的dual表详解 1.DUAL表的用途 Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中 --查看当前连接用户 SQL> select user from dual; USER ------------------------------ SYSTEM --查看当前日期.时间 SQL> select sysdate from dual; SYSDATE ----------- 2007-1-24 1 SQL> sele

day01_linux中与Oracle有关的内核参数详解

linux中与Oracle有关的内核参数详解 在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip