【问题标题】:Select database rows in range选择范围内的数据库行
【发布时间】:2010-02-20 14:03:29
【问题描述】:

我想从表中选择 A 和 B 之间的行。该表至少有 A 行,但可能少于 B 行。 例如,如果 A = 2, B = 5 并且表有 3 行,它应该返回第 2 行和第 3 行。

我怎样才能得到这样一个范围内的行?

我使用的是 Microsoft SQL Server 2008。

【问题讨论】:

    标签: sql select


    【解决方案1】:

    您可以使用类似于this SO 问题中描述的内容。

    I.E.

    SELECT * FROM ( 
      SELECT *, ROW_NUMBER() OVER (ORDER BY YOUR_ORDERED_FIELD) as row FROM YOUR_TABLE
     ) a WHERE row > 5 and row <= 10
    

    在您的示例中,A = 5 和 B = 10。

    【讨论】:

      【解决方案2】:
      SELECT *,ROW_NUMBER() OVER 
          (ORDER BY ordercol) AS 'rank'
      FROM table
      where rank between @a and @b
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-31
        • 1970-01-01
        • 2019-09-05
        相关资源
        最近更新 更多