我有两列例如。 A
是Varchar2
,B
是date
列。
数据样本:
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));
}
则只选择它。因此,在这种情况下,不应返回任何行。
我希望这是有道理的。
答案 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);