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。

版权声明:本文博主原创文章。博客,未经同意不得转载。

时间: 2024-10-11 03:16:39

ORACLE功能GREATEST功能说明具体实例的相关文章

Oracle EBS WMS功能介绍(二)

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 出货物流逻辑主要包括 1.      打包,可以进行多层嵌套式的打包,并通知用户为订单所做的特殊打包方法.打包可以在拣货时做,也可以作为一个独立的操作来做. 2.      为行程进行码头预约,可以使仓库经理计划出库运输公司的预约,码头门的可用性和仓库内的待装区的使用. 3.      拣货方法,为不同订单的拣货需要选择不同的拣货方法. 4.      管理拣货,可以使订单基于移动手持应用拣

Oracle EBS WMS功能介绍(一)

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) Oracle WMS是仓储管理,是Oracle 高级供应链和制造解决方案中的一个组件,不完全等同于库存(Oracle Inventory),因为它支持高度自动化的手持扫描枪和物料处理系统:且极大的扩展了现有EBS的功能,并提供了包括仓存资源管理,仓储配置,生产率,性能分析,任务计划,高级拣货方法和附加值服务.所以WMS中的大部分操作是通过扫描枪来进行的. 要使用WMS的一个重要前提就是必须使

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        

Oracle 12c 基于ASM 的单实例 搭建手册

从Oracle 10g开始,Oracle 开始推广ASM的使用,到了11g,RAC 集群已经必须使用ASM,所以对ASM的掌握程度也决定RAC的运维水平,这篇Blog 演示 Oracle12c 基于ASM 的单实例的的环境搭建. 这样即可以玩12c 的ASM,又不需要起2个集群,从而方便学习.具体环境搭建步骤如下. 1  安装需要的RPM 包 binutils-2.20.51.0.2-5.11.el6 (x86_64) glibc-2.12-1.7.el6 (x86_64) libgcc-4.4

如何彻底删除Oracle数据库,以创建相同实例名称的库

今天建库时选择了OMF方式,结果文件名称采用Oracle自动命名的方式,看不懂啊,于是乎决定删除再重建. Oracle提供了删除数据库的指令:drop database. 需要数据库处于mount状态,然后alter system enable restricted session;,网上有帖子说还需要exclusive,由于我是VM装的,用户只有我一个,所以不用可以.由于当前处于open状态,需要改为mount,执行: SQL> alter database close; alter data

Asianux 7.3安装Oracle 11.2.0.4单实例体验

环境:Asianux 7.3 需求:安装Oracle 11.2.0.4 单实例 背景:系统使用默认的最小安装部署,Oracle安装额外需要的包统一使用yum安装. 查看当前系统相关信息: [[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-514.axs7.x86_64 #1 SMP Fri Feb 17 19:31:50 CST 2017 x86_64 x86_64 x86_64 GNU/Linux [[emai

超市购物功能,会员卡功能,会员卡积分查询功能,会员卡奖品功能,自己练手函数程序

函数自己练手一晚上敲的,各位博主可以走过路过可以来瞧瞧,欢迎评价提需求哈哈 total_prices = 0 def chiose(action): '''0是注册功能,1是会员卡系统,2是购物功能,3是会员查找积分功能,4为会员积分兑换功能''' #注册功能 if action == 0: # 注册内容 def register(): while True: print('注册账号'.center(50, "-")) name = input('请输入账号').strip() pri

oracle数据库基础功能

一.oracle基本常用的数据类型 varchar(长度) 字符串char(长度) 字符number(x,y) x表示总位数 y表示保留小数点后几位数 eg面试题:number(5,3)最大的数是99.999decimal() 数字long int integer 整数date 日期timestamp 日期clob blob 特殊文本 二进制 二.DLL操作create创建表的前提是:1.具备创建表的条件 2.有可用的存储空间创建表的语法是:create table 表名 (column1 数据

Oracle关闭审计功能

[[email protected] ~]# su - oracle [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 12 09:54:57 2017 Copyright (c) 1982, 2011, Oracle.  All rights reserved. Connected to: Oracle Database 11g Enterprise Edi