如何在SQL中返回maxvalue或nullvalue?

Cle*_*lem 1 sql oracle select max

我在Oracle数据库上运行请求.我的一个表包含Elements的时隙,同一个Element可以有多个时隙,以便以下示例正确:

ID    ELEMENT_ID    BEGIN_DATE    END_DATE
--------------------------------------------
1     1             01/01/2007    01/06/2007
2     1             01/06/2007   

3     2             01/01/2006    01/07/2006
4     2             01/07/2006    31/12/2006
Run Code Online (Sandbox Code Playgroud)

END_DATE未填充的时隙意味着它仍在运行(因此,这是Element的最新时隙).

因此,当我搜索END_DATE每个元素的最新内容时,我想获得行#2和#4.所以,我面临的问题是将NULL视为最高END_DATE......

是否可以在一个SQL请求中执行此操作?

当然我试过一个简单的:

SELECT MAX(END_DATE) FROM ...

但由于NULL值,它并不适用.

提前致谢.

Les*_*ove 6

将空值更改为某个将来的值

SELECT MAX(NVL(END_DATE,SYSDATE + 1) ...
Run Code Online (Sandbox Code Playgroud)