最近做报表的时候突然遇到一个这样的需求:

取站点表中的a列、b列、c列的最晚时间,需要所有站点的这三个环节都完成,并且取最晚时间,如果有一个环节没有完成,时间就取null。

其中有三列时间分别为

a列       b列        c列

1 2010-2-4  
2 2010-2-5  
3 2010-2-6  
4 2010-2-3   2010-2-3   2010-2-3
5 2010-2-3   2010-2-3   2010-2-3
6 2010-2-3   2010-2-3   2010-2-3
7 2011-1-2   2011-1-2   2011-1-2
8 2011-1-1   2011-1-3

第一种思路是先分别求a,b,c三列的最大值,然后再比较a,b,c三列中的最大时间。

select greatest(max(cw.a),
                max(cw.b),
                max(cw.c)

)
  from 表 cw

这样就得到a,b,c三列中最大的时间。

注意:greatest函数,例greatest(a,b,c),如果a,b,c当中有任一值为null,greatest就会取值为null

由于max函数求最大时间直接取最大的时间了,而要求是如果时间有null就取null值,而不是取最大时间,于是就需要做特殊处理了。

可以先将null转为最大时间如'2999-01-01',这样调用max如果b列就有null值就会取到最大值'2999-01-01',然后再将最大时间转为null即可。

select case when  max(nvl(cw.b,to_date('2999-01-01','yyyy-mm-dd'))) = to_date('2999-01-01','yyyy-mm-dd') then null
       else max(nvl(cw.b,to_date('2999-01-01','yyyy-mm-dd'))) end     
 from 表 cw

附:

SELECT id, chinese, math, english,
          greatest(chinese, math, english) max,
           least(chinese, math, english) min
    FROM   tb;

ID    CHINESE       MATH    ENGLISH        MAX        MIN
        ---------- ---------- ---------- ---------- ---------- ----------
      1001         89         98         87         98         87
      1002         81         87         79         87         79

Greatest and Least 的使用相关推荐

  1. 转:Oracle greatest函数

    格式: greatest( expr1, expr2, ... expr_n ) expr1, expr2, . expr_n 可以值也可以是函数. 函数功能: 取得值最大值. 影响版本: Oracl ...

  2. [2010山东ACM省赛] Greatest Number(数的组合+二分搜索)

    Greatest Number Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Saya likes math, because ...

  3. The greatest happiness 2019-11-13

    One of the greatest happiness of a person is to devote himself to a career that he is interested in. ...

  4. oracle 中least,ORACLE 内置函数之GREATEST和LEAST

    Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有内置函数实现这个功能:COALESC ...

  5. ORACLE 内置函数之 GREATEST 和 LEAST(转)

    Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有内置函数实现这个功能:COALESC ...

  6. CodeForces - 1486C2 Guessing the Greatest (hard version)(二分+交互)

    题目链接:点击查看 题目分析:给出一个长度为 nnn 的序列,现在可以进行最多 202020 次查询,每次查询可以询问区间 [l,r][l,r][l,r] 中次大值的位置,现在要求在查询后输出最大值的 ...

  7. oracle中的greatest,ORACLE 内置函数之 GREATEST 和 LEAST(转)

    Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有内置函数实现这个功能:COALESC ...

  8. ZOJ 2432 Greatest Common Increasing Subsequence(最长公共上升子序列+路径打印)

    Greatest Common Increasing Subsequence 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problem ...

  9. oracle+greatest+max,ORACLE 内置函数之 GREATEST 和 LEAST(求多列的最大值,最小值)

    转载自:http://dlblog.iteye.com/blog/1274005 Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不 ...

  10. oracle中 greatest、east、coalesce

    一. greatest 1. 语法 greatest( expr1, expr2, ... expr_n ) expr1, expr2, . expr_n 可以值也可以是函数.   2. 功能 取得值 ...

最新文章

  1. 我的erlang TCP服务器
  2. Linux中的Screen命令使用技巧详解
  3. FastCGI模块(FastCGI)
  4. ***S 2012 交互式报表 -- 钻取式报表
  5. Java IO流之普通文件流和随机读写流区别
  6. 征战蓝桥 —— 2013年第四届 —— C/C++A组第3题——振兴中华
  7. java log4jhelper_log4j的使用
  8. 20080331 - What is a PID, How is it useful when troubleshooting a system
  9. MATLAB目标检测恒虚警技术,一种自适应的恒虚警率目标检测方法
  10. 华为MatePad 11开启预售:鸿蒙OS加持 2499元起!
  11. Arrays工具类的常用方法
  12. 微型计算机的软件系统分成,会计电算化辅导:微型计算机软件系统
  13. 【PCL自学:Feature7】基于转动惯量和偏心量的描述符 (持续更新)
  14. 7-20 打印九九口诀表 (15 分) 下面是一个完整的下三角九九口诀表:
  15. 最简单的P2P加密聊天软件开发准备
  16. new Integer()与 Integer.valueOf()区别和联系
  17. 智能振弦传感器的读取工具振弦采集仪
  18. idea添加自定义插件仓库 灵狐插件、阿里代码规约插件安装idea插件推荐
  19. HDU2036 改革春风吹满地
  20. 自动投票系统【二】模拟登录提交

热门文章

  1. Java怎么计算百分比?
  2. 说人话的外科总论-第二章 无菌术
  3. JAVA实战之路(8):IDEA使用小技巧:IDEA禁止import *和允许import内部类
  4. Java语言判断质数
  5. 用LaTex排版IEEE Trans文章的一些步骤及资料记录
  6. android如果手机屏锁忘记了怎么办,手机屏幕锁忘了怎么办
  7. 「HTML和CSS入门指南」thead 标签详解
  8. uniapp---------订单多商品评价及图片上传、删除功能
  9. rocketmq,索尔,qf,视频
  10. 还小龙虾“清白”!日军什么的,完全子虚乌有。铁证如山