【问题标题】:How to modify this query to use between startindex and endindex rownum [duplicate]如何修改此查询以在 startindex 和 endindex rownum 之间使用 [重复]
【发布时间】:2014-03-23 11:13:19
【问题描述】:

如何修改此查询,以便获得 rownum 10 和 21 之间的结果,例如:

   SELECT DAL_ROWNOTABLE.DAL_ID
     FROM (SELECT ticket.id AS "DAL_ID" 
          FROM ticket_table ticket 
          WHERE (ticket.type = N'I' ) AND 
        (ticket.tenant IS NULL OR
         ticket.tenant IN (SELECT tgm.tenant_id 
                           FROM tenant_group_member tgm
                           WHERE tgm.tenant_group = HEXTORAW('30B0716FEB5F4E4BB82A7B7AA3A1A42C') 
                          ) 
        )
  ORDER BY ticket.id
 ) DAL_ROWNOTABLE 
  WHERE rownum <= 21;

任何帮助将不胜感激。

【问题讨论】:

    标签: database oracle between row-number rownum


    【解决方案1】:

    rownum 更改为row_number()

    SELECT DAL_ROWNOTABLE.DAL_ID
    FROM (SELECT ticket.id AS "DAL_ID",row_number() over (order by ticket_id) as seqnum
          FROM ticket_table ticket 
          WHERE (ticket.type = N'I' )AND
                (ticket.tenant IS NULL OR
                ticket.tenant IN(SELECT tgm.tenant_id 
                                  FROM tenant_group_member tgm
                                  WHERE tgm.tenant_group = HEXTORAW('30B0716FEB5F4E4BB82A7B7AA3A1A42C') 
                                 ) 
            )
         ) DAL_ROWNOTABLE 
    WHERE seqnum between 10 and 21;
    

    【讨论】:

    • 嗯,我建议在回答这个人的另一个问题时使用 ROW_NUMBER()。
    • @APC 。 . .我记得,这是一个很好的解决方案。我使用rownum 只是为了简化查询。
    • 哈哈哈戈登再次......谢谢男人会试试这个......我想使用减号
    • 我将不得不检查为什么代码使用 ROWNUM 自己的实现而不是使用 ROW_NUMBER,这在你看来似乎很简单......
    猜你喜欢
    • 2020-06-25
    • 2013-05-19
    • 2019-10-18
    • 2012-05-07
    • 2015-10-04
    • 2023-04-10
    • 2021-03-12
    • 1970-01-01
    相关资源
    最近更新 更多