zoukankan      html  css  js  c++  java
  • oracle-同一行求最大值、最小值(greatest、least用法)

    一、需求

    有如下这样一组数据:

    SQL> select * from score;
    
           ID CHINESE    MATH ENGLISH
    ---------- ---------- ---------- ----------
       10001       91       98       87
       10002       81       87       79

    希望得到如下结果:

           ID CHINESE    MATH       ENGLISH        MAX        MIN
    ---------- ---------- ---------- ---------- ---------- ----------
       10001       91       98       87             98       87
       10002       81       87       79             87       79
    ————————————————

    二、解决办法

    使用greatest()、least()函数

    SQL> SELECT id, chinese, math, english,
       2       greatest (chinese, math, english) max,
       3       least(chinese, math, english) min
       4   FROM score;
    
           ID CHINESE    MATH ENGLISH        MAX        MIN
    ---------- ---------- ---------- ---------- ---------- ----------
       1001       91       98       87       98       87
       1002       81       87       79       87       79
    ————————————————

    三、函数说明

    1. COALESCE 返回该表达式列表的第一个非空value。

        格式: COALESCE(value1, value2, value3, …)

        含义: 返回value列表第一个非空的值。

                   value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

        EXAMPLE: select coalesce (1, null, 2 ) from dual ; — 返回1

                         select coalesce ( null, 2, 1 ) from dual ; — 返回2

                         select coalesce (t.empno, t.mgr ) from  scott.emp t ; — 效果类似 NVL( t.empno, t.mgr )

    2. GREATEST 返回值列表中最大值

        格式: GREATEST(value1, value2, value3, …)

        含义: 返回value列表最大的值。

                   value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

                   当value值列表中有一个为NULL,则返回NULL值。

        EXAMPLE: select greatest (1, 3, 2 ) from dual ; — 返回3

                         select greatest ( ‘A’, ‘B’, ‘C’ ) from dual ; — 返回C

                         select greatest (null, ‘B’, ‘C’ ) from dual ; — 返回null

                         select greatest (t.empno, t.mgr ) from  scott.emp t ; — 返回empno和mgr 较大值

    3. LEAST 返回值列表中最小值

        格式: LEAST(value1, value2, value3, …)

        含义: 返回value列表最小的值。

                   value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

                   当value值列表中有一个为NULL,则返回NULL值。

        EXAMPLE: select least (1, 3, 2 ) from dual ; — 返回1

                         select least ( ‘A’, ‘B’, ‘C’ ) from dual ; — 返回A

                         select least (null, ‘B’, ‘C’ ) from dual ; — 返回null

                         select least (t.empno, t.mgr ) from  scott.emp t ; — 返回empno和mgr 较小值

    参考链接:https://www.cnblogs.com/zxf330301/p/9892958.html

  • 相关阅读:
    树——题解汇总
    element ui实现手动上传文件,且只能上传单个文件,并能覆盖上传
    浏览器缓存
    websocket协议
    session
    cookie
    作用域插槽
    时间格式化函数
    Neo4j快速入门
    线性空间
  • 原文地址:https://www.cnblogs.com/zs-chenkang/p/14734121.html
Copyright © 2011-2022 走看看