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

  • 相关阅读:
    centos同步北京时间
    django-migrate一败再败
    Mac-无法进入mysql,你这样做就对了
    celery beat
    devops--django+ldap
    本地终端连接到远程服务器
    Mac--ModuleNotFoundError: No module named 'magic'
    一站式解决Mac--socket.gaierror: [Errno 8] nodename nor servname provided, or not known
    docker--常用指令
    Mac--管理mysql、redis服务的常用命令
  • 原文地址:https://www.cnblogs.com/zs-chenkang/p/14734121.html
Copyright © 2011-2022 走看看