Oracle 函数 之 Coalesce()、greatest()、least()
Coalesce()、greatest()、least()
oracle比较一列的数据大小时,我们一般使用max()/min()函数,比较一行的最大值或者最小值时,使用函数Coalesce()/greatest()/least()。
测试数据准备
create table stu_score(
stu_id varchar2(4),
math integer default 0, --姓名
english integer default 0, --性别 1 男 2 女 0 未知
chinese integer default 0
); insert into stu_score(stu_id, math, english, chinese) values('0001', '11', '22', '33');
insert into stu_score(stu_id, math, english, chinese) values('0002', '44', '55', '66');
insert into stu_score(stu_id, math, english, chinese) values('0003', '77', '88', '99');
insert into stu_score(stu_id, math, english, chinese) values('0004', '100', '', '');
insert into stu_score(stu_id, math, english, chinese) values('0005', '', '100', '');
insert into stu_score(stu_id, math, english, chinese) values('0006', '', '', '100');
Coalesce()
Coalesce (value1, value2, value3, …)
返回改表达式列表的第一个非空的值,value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。
--coalesce测试①:返回2
select coalesce(2, 1, 3) Coalesce_test from dual;
--coalesce测试②:返回math
select coalesce('math', 'english', 'chinese') Coalesce_test from dual;
--coalesce测试③:数据类型不一致,报错
select coalesce('math', 'english', 'chinese',1) Coalesce_test from dual;
--coalesce测试④:返回结果如下图
select stu_id, coalesce(math, english, chinese) Coalesce_test from stu_score;

greatest()
greatest (value1, value2, value3, …)
返回value列表最大的值。value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。当value值列表中有一个为NULL,则返回NULL值。
--greatest测试①:返回3
select greatest(2, 1, 3) Coalesce_test from dual;
--greatest测试②:返回math
select greatest('math', 'english', 'chinese') Coalesce_test from dual;
--greatest测试③:自动处理数据类型,返回math
select greatest('math', 'english', 'chinese',1) Coalesce_test from dual;
--greatest测试④:返回结果如下图,如果value值列表中有一个为null,则返回null值
select stu_id, greatest(math, english, chinese) Coalesce_test from stu_score;

least()
least (value1, value2, value3, …)
返回value列表最小的值。value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。当value值列表中有一个为NULL,则返回NULL值。
--least测试①:返回1
select least(2, 1, 3) Coalesce_test from dual;
--least测试②:返回chinese
select least('math', 'english', 'chinese') Coalesce_test from dual;
--least测试③:自动处理数据类型,返回1
select least('math', 'english', 'chinese',1) Coalesce_test from dual;
--least测试④:返回结果如下图,如果value值列表中有一个为null,则返回null值
select stu_id, least(math, english, chinese) Coalesce_test from stu_score;

Oracle 函数 之 Coalesce()、greatest()、least()的更多相关文章
- oracle函数操作
感于总有些网友提出一些非常基础的问题,比如有没有实现某某功能的函数啊,某某函数是做什么用的啊,格式是什么等等,同时也感受到自己对oracle函数认识的不足,于是集中月余时间专注于oracle函数,小有 ...
- 常用Oracle函数记录
1. Oracle的replace函数与translate函数 replace函数是在字符串级别的代替,对应字符串一一替换 SQL> SELECT REPLACE('accd','cd','ef ...
- oracle函数,游标,视图使用总结0.000000000000000000001
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而 ...
- 【函数】Oracle函数系列(2)--数学函数及日期函数
[函数]Oracle函数系列(2)--数学函数及日期函数 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不 ...
- oracle函数listagg的使用说明(分组后连接字段)
关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用 ...
- 浅谈Oracle函数返回Table集合
在调用Oracle函数时为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合 ...
- oracle学习笔记(三)oracle函数
--oracle 函数 --lower(char):将字符串转换为小写格式 --upper(char):将字符串转换为大写格式 --length(char):返回字符串的长度 --substr(cha ...
- oracle函数和存储过程有什么区别
oracle函数和存储过程有什么区别 1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数 ...
- Oracle函数sys_connect_by_path 详解
Oracle函数sys_connect_by_path 详解 语法:Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行.其语法一般为: s ...
随机推荐
- C语言的头文件和宏定义详解
原文链接:https://blog.csdn.net/abc_12366/article/details/79155540
- 基于svn+ssh:访问svn的部署以及客户端配置
1.安装ssh sudo apt-get install ssh 2.安装subversion sudo apt-get install subversion 3.为参与项目开发的成员建立用户帐户 s ...
- 树的计数 Prufer序列+Cayley公式
先安利一发.让我秒懂.. 第一次讲这个是在寒假...然而当时秦神太巨了导致我这个蒟蒻自闭+颓废...早就忘了这个东西了... 结果今天老师留的题中有两道这种的:Luogu P4981 P4430 然后 ...
- avro-maven-plugin
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- ProtocBuffer安装
学习protocolhttp://www.jianshu.com/p/fa126a8535a0 mac安装protocbuff: 下边总结一下安装流程: 查看官方文档源码在 https://githu ...
- D. Little Artem and Dance
题目链接:http://codeforces.com/problemset/problem/669/D D. Little Artem and Dance time limit per test 2 ...
- 四则运算 calc()
它的出现还真的蛮令人惊喜的,很适用于百分比宽度.之前我们有box-sizng,而今又多了一个它,并且,calc的实用性更高.我们可以在border.margin.pading.font-size和wi ...
- nginx中文手册内容说明
1.什么是nginx? Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接, ...
- Mybatis的小计
1连接池 一 我的错误想法 poolMaximumIdleConnections 最大活跃连接数 poolMaximumActiveConnections 最大空闲连接数 我一直以为 空闲是一直存在的 ...
- C#中动态创建数据库和数据表,很经典【转】
用ADOX创建access数据库方法很简单,只需要new一个Catalog对象,然后调用它的Create方法就可以了,如下: ADOX.Catalog catalog = new Catalog(); ...