【问题标题】:SELECT into with DESC and ROWNUM使用 DESC 和 ROWNUM 选择
【发布时间】:2011-09-28 03:24:01
【问题描述】:

我当前的查询:

SELECT DACTIONMILLIS, DACTIONDATE INTO WF_DACTIONMILLIS, WF_DACTIONDATE 
FROM WORKFLOWHISTORY 
WHERE ddocname=? and LOWER(DACTION)=?
and lower(DWFSTEPNAME)=?
and lower(DUSER)=? 
and rownum = 1
ORDER BY DACTIONDATE desc;

但是因为 rownum 是在订单之前应用的,所以我得到了无效的结果。我在 stackoverflow 上找到了以下主题:How do I limit the number of rows returned by an Oracle query after ordering? 但讨论的是选择,而不是选择进入

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    与您引用的问题相同的方法适用:

    SELECT DACTIONMILLIS, DACTIONDATE
    INTO WF_DACTIONMILLIS, WF_DACTIONDATE 
    from
    ( SELECT DACTIONMILLIS, DACTIONDATE
      FROM WORKFLOWHISTORY 
      WHERE ddocname=? and LOWER(DACTION)=?
      and lower(DWFSTEPNAME)=?
      and lower(DUSER)=? 
      ORDER BY DACTIONDATE desc
    )
    WHERE rownum = 1
    

    【讨论】:

      【解决方案2】:
      SELECT DACTIONMILLIS, DACTIONDATE INTO WF_DACTIONMILLIS, WF_DACTIONDATE 
      FROM (
          SELECT DACTIONMILLIS, DACTIONDATE, WF_DACTIONDATE 
          FROM WORKFLOWHISTORY 
          WHERE ddocname=? and LOWER(DACTION)=?
          and lower(DWFSTEPNAME)=?
          and lower(DUSER)=? 
          ORDER BY DACTIONDATE desc
      )
      WHERE rownum = 1
      

      【讨论】:

        猜你喜欢
        • 2014-04-09
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多