【问题标题】:Sql query to select 3rd element from data? [duplicate]Sql查询从数据中选择第三个元素? [复制]
【发布时间】:2015-08-18 18:26:40
【问题描述】:

我已经写了sql查询

   Select * from Products WHERE Products.Category=="Fruits";

返回的答案是

  1-Banana
  2-Mango
  3-Apple
  4-Oranges
  5-Grapes

现在我只想在索引 3 处选择水果,即 Apple 使用 sql 索引 问题无处不在,我应该如何在 sql 查询中使用它的索引来选择第三位的元素?

【问题讨论】:

  • 语法错误。您使用的是哪个 dbms 产品? MySQL 和 SQL Server 都有???
  • SQL SERVER 2012 但我只想要第三个数字限制应该给我 2 个值
  • 欢迎来到stackoverflow。请阅读How to Ask。我已编辑您的问题以删除不相关的标签。

标签: sql sql-server sql-server-2012


【解决方案1】:

您可以使用 CTE 查找第 n 位记录

 with cte as
   (
     select ROW_NUMBER() over (order by Salary desc) as r, * 
     from Products 
     WHERE Products.Category=="Fruits" e
   )
  select * from cte where r=3

【讨论】:

    【解决方案2】:

    Sql server 2012 支持offset and fetch,因此您的查询应如下所示:

    SELECT * 
    FROM Products 
    WHERE Products.Category ='Fruits'
    ORDER BY Products.Category -- or whatever column you need the sort on
    OFFSET 3 ROWS FETCH NEXT 1 ROW ONLY; 
    

    【讨论】:

    • 可能是OFFSET 2 ROWS FETCH NEXT 1 ROW ONLY ?
    • 糟糕,正确。修好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    相关资源
    最近更新 更多