Sql查询从数据中选择第三个元素? [复制]

Posted

技术标签:

【中文标题】Sql查询从数据中选择第三个元素? [复制]【英文标题】:Sql query to select 3rd element from data? [duplicate] 【发布时间】: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 个值 欢迎来到***。请阅读How to Ask。我已编辑您的问题以删除不相关的标签。 【参考方案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 ? 糟糕,正确。修好了。

以上是关于Sql查询从数据中选择第三个元素? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从 SQL 选择查询创建 XML

SQL,根据第三个表从两个表中选择,它引用它们

在 PL/SQL 中的选择查询中引用数组元素

SQL Regex 在第二个和第三个正斜杠之间选择字符串

SQL - 如何避免将三个查询合并为一个

如何从另一个元素选择中选择属性