• 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;

  • 相关阅读:
    基金相关知识整理
    Apache Shiro反序列化漏洞复现
    payload分离免杀
    Red Team 工具集之网络钓鱼和水坑攻击
    GPP(Group Policy Preference)组策略偏好漏洞利用
    AdFind
    python爬虫之beautifulsoup的使用
    xargs命令_Linux xargs命令:一个给其他命令传递参数的过滤器
    mutillidae之注册页面的Insert型报错注入
    mutillidae之Insert型注入
  • 原文地址:https://www.cnblogs.com/wangrui1587165/p/9983283.html
Copyright © 2020-2023  润新知