如果另一列为null,则Oracle选择最新记录

时间:2015-10-28 19:45:02

标签: sql oracle

我有两列例如。 AVarchar2Bdate列。

数据样本:

A            B
----------   -----------
10/27/15     
10/28/15     Y

我如何编写一个sql,它会检查max(A) B NULL是否为System.out.println("javahome: " + System.getProperty("java.home") ); ,如果是Map<String, String> env = System.getenv(); for (String envName : env.keySet()) { System.out.format("%s=%s%n", envName, env.get(envName)); } 则只选择它。因此,在这种情况下,不应返回任何行。

我希望这是有道理的。

1 个答案:

答案 0 :(得分:1)

这是一种方法:

select s.*
from (select s.*
      from (select s.*
            from sample s
            order by a desc
           ) s
      where rownum = 1
     ) s
where s.B is null;

这在Oracle 12 +中稍微简单一些:

select s.*
from (select s.*
      from sample s
      order by a desc
      fetch first 1 row only
     ) s
where s.B is null;

另一种方法是使用条件聚合:

select max(a)
from sample
having max(a) = max(case when b is null then a end);