如何选择另一个选择查询结果的第 10、20、30 ... 行
Posted
技术标签:
【中文标题】如何选择另一个选择查询结果的第 10、20、30 ... 行【英文标题】:How can I select 10th, 20th, 30th ... row of the result of another select query 【发布时间】:2016-01-19 09:43:35 【问题描述】:我有一张表,其中有一列 to
、from
和 ID
。我只需要选择每 10 个 ID
的行,即从 A
到 B
。
【问题讨论】:
如果您的 DBMS 支持窗口聚合函数,您可以简单地使用ROW_NUMBER
模 10
你的 DBMS 是什么,是否支持 ROW_NUMBER?
您使用的是哪个 DBMS?
那么 ROW_NUMBER 没关系,你可以像 dnoeth 说的那样去
【参考方案1】:
select * from
(select * from table where from = 'A' and to ='B' order by ID)
where mod(rownum/10,1) = 0
它首先只取从“A”到“B”的那些,然后给它们rownums,并只选择那些在第10个20个ETC位置的..
【讨论】:
你必须使用 order by: (select * from table where from = 'A' and to ='B' ORDER BY ID) 好。你可以使用mod(rownum,10) = 0
。
@sagi 它不起作用..我在另一篇帖子 ***.com/questions/15963129/how-to-use-rownum 中找到了一些东西【参考方案2】:
或者你可以直接使用
select from, to, id
from table1
where id like'%0' and from ='A' and to = 'B'
【讨论】:
谁说ID是连续的?他想要第 10 个不是 id = 10 和 id = 20以上是关于如何选择另一个选择查询结果的第 10、20、30 ... 行的主要内容,如果未能解决你的问题,请参考以下文章
如何在不选择新实例的情况下将一个查询的结果加入另一个查询的结果? [复制]