【问题标题】:SQL Select statement between row number n and j行号 n 和 j 之间的 SQL Select 语句
【发布时间】:2012-08-09 16:45:11
【问题描述】:

如何使用 select 语句选择从 500 到 1000 的行?

【问题讨论】:

  • 访问数据库,我正在使用 vb.net
  • @user1570048 您的表是否有对应于 500-1000 的数字 ID 字段?
  • 什么决定了哪一行是第 500 行?数据是如何排序的?
  • 当您说第 500 到 1000 行时,您的标准是什么? Sql 行没有按任何顺序排序,因此它们的顺序在不同的 select 语句上可能不同。除非您有特定的 id 或日期戳,否则这个问题毫无意义。
  • 检查这个解决方案-stackoverflow.com/questions/1701243/…,然后你可以做select * from tbl where rownumber between 500 and 1000

标签: sql ms-access select


【解决方案1】:

如果没有更多信息,我建议选择前 1000 名,然后从中选择后 500 名。

编辑:记录顺序是按名为名称的字段。也许是这样的:

select top 500 name
from 
(
select top 24000 name
from table
order by name
)
order by name desc

请注意:名称是保留字,不适合作为字段名称。

【讨论】:

  • 1000 和 2000 呢?!
  • @user1570048 我不知道你在说什么。 2000?这里有才华横溢的人。如果您提供更多信息,我相信您会在几分钟内得到答复。
  • 我有 36000 条记录,例如我希望能够在 23500 和 24000 之间进行选择,依此类推:)
  • @user1570048 您已被多次询问有关记录的排序方式。创纪录的 23,500 究竟是如何确定的?如果你能提供,我相信很快就会有答案。
  • 按字母顺序按名为“名称”的列
【解决方案2】:

在大多数数据库中,您会使用 row_number() over (order by col1, col2) 之类的东西将行号分配给特定的顺序。然后您可以请求行 x 到 y。见here

由于 MS-Access 没有 row_number() 之类的分析功能,因此您必须更有创意。 Here's a KB article 可能对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2013-10-10
    相关资源
    最近更新 更多