【问题标题】:Select nth result from a query从查询中选择第 n 个结果
【发布时间】:2012-07-13 07:15:39
【问题描述】:

我正在使用 SQL Server 2012,我想知道是否有一种方法可以选择例如查询的第三个结果。我研究了 LIMIT 和 OFFSET,但我不能 100% 确定它是否适用于 SQL Server,但是有人告诉我,在 SQL Server 2012 中有一些我想做的事情。

【问题讨论】:

  • 我想你只想通过你的查询返回第 n 行是它的 rigt
  • @RenjithKN 确切地说,从我的查询(可能是简单的或复杂的)中,我想从我刚刚运行的查询结果中选择第 n 行
  • Row Offset in SQL Server的可能重复
  • @juergend 这是专门针对 MSSQL 2012 的,该问题于 2011 年发布,针对任何 SQL 版本(没有针对 2012 年的答案)
  • @juergend 只有在有某种方式强调 SQL Server 2012 答案时,我才会同意重复。这不是公认的答案,但它是专门针对 SQL Server 2012 的最佳答案。

标签: sql-server sql-server-2012


【解决方案1】:
SELECT  *
FROM     YourTable
ORDER BY OrderingColumn ASC 
OFFSET  2 ROWS /*Skip first 2 rows*/
FETCH NEXT 1 ROWS ONLY 

注意:如果不先使用ORDER BY,则不能使用OFFSET ... FETCH

【讨论】:

  • 我自己刚刚得到这个工作,我知道它与偏移有关,但错过了获取。另外,请注意,如果不先执行 ORDER BY,则不能使用 OFFSET FETCH
【解决方案2】:

我会推荐

select * from table ORDER BY OrderingColumn ASC LIMIT n,1

这是一个限制的怪癖,如果你给它一个范围,它只会返回那个范围。它也适用于 MySQL。

【讨论】:

    【解决方案3】:

    你不能只选择第二个索引吗?这就是我会说我桌子上的第三个帖子的方式。

    //索引 3 $index3 = DB::query('SELECT * from posts')[2];

    然后您将拥有一个可供您使用的数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多