如何修改此查询以在 startindex 和 endindex rownum 之间使用 [重复]
Posted
技术标签:
【中文标题】如何修改此查询以在 startindex 和 endindex rownum 之间使用 [重复]【英文标题】:How to modify this query to use between startindex and endindex rownum [duplicate] 【发布时间】: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;
任何帮助将不胜感激。
【问题讨论】:
【参考方案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,这在你看来似乎很简单......以上是关于如何修改此查询以在 startindex 和 endindex rownum 之间使用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何编写此查询以在 Sql Server 中获得更好的性能?删除子字符串行