在我的查询中,当RowNum = 1不会获得空值

时间:2019-05-19 06:27:54

标签: sql oracle oracle11g

在我的查询中

Select AT.PRE_LAST_DATE 
From AUTHORIZATION AT 
Where AT.PROJECT_ID = 5 and AT.PRE_DESIG_ID = 48   
Order By AT.ID Desc;

我有两个约会

  1. NULL
  2. 19年5月17日00.00.00

但是当我使用Rownum = 1时,它不会返回空值

Select AT.PRE_LAST_DATE 
From AUTHORIZATION AT 
Where AT.PROJECT_ID = 5 and AT.PRE_DESIG_ID = 48 and ROWNUM = 1  
Order By AT.ID Desc;

它返回:

  1. 19年5月17日00.00.00

现在如何获取第一个空值?

1 个答案:

答案 0 :(得分:1)

ORDER BY子句之后应用WHERE,该子句仅按未定义的顺序返回行之一。要先订购,然后选择第一行,请使用子查询:

Select PRE_LAST_DATE 
From 
    (Select AT.PRE_LAST_DATE From 
        AUTHORIZATION AT 
        Where AT.PROJECT_ID = 5 and AT.PRE_DESIG_ID = 48
        Order By AT.ID Desc)
Where ROWNUM = 1;