zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    排序算法-Java实现
    Linux-文件内容的查阅
    Linux-文件权限概念
    Linux-awk和sort处理字符串
    面试题-总结(二)
    面试题-总结(一)
    程序员的其他技能:股票-ROE解释
    程序员的其他技能:基金初识-基金名称的秘密
    tp框架表单验证 及ajax
    tp框架做留言板
  • 原文地址:https://www.cnblogs.com/wangrui1587165/p/9983283.html
Copyright © 2011-2022 走看看