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

  • 相关阅读:
    精讲响应式WebClient第6篇-请求失败自动重试机制,强烈建议你看一看
    dubbo实战之三:使用Zookeeper注册中心
    dubbo实战之二:与SpringBoot集成
    dubbo实战之一:准备和初体验
    树莓派4B安装官方Ubuntu20 Server版(64位)
    JUnit5学习之八:综合进阶(终篇)
    纯函数
    函数式编程基本概念
    vscod使用指南
    实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原
  • 原文地址:https://www.cnblogs.com/zs-chenkang/p/14734121.html
Copyright © 2011-2022 走看看