如何使用SQL查询从表中查找倒数第二条记录?

时间:2016-11-19 08:48:02

标签: sql greatest-n-per-group

我有学生表,此表中有10条记录。但我想找出第二个记录,我只有表名,所以我怎么能找到这个记录?

这是我的查询。

select * 
from student 
order by primarykey desc LIMIT 1,1

提前致谢。

4 个答案:

答案 0 :(得分:2)

你可以这样做:

SELECT * FROM (
                SELECT *,ROW_NUMBER() OVER (PARTITION BY PrimaryKey DESC) AS RN
                ) X
WHERE X.RN=2

子查询将根据primary key反转您的结果并返回row_number()及其中的结果集,您将获得第二行,这将是实际的第二个最后一条记录。

答案 1 :(得分:2)

ANSI标准SQL方法是:

url = urllib.urlopen("http://chart.finance.yahoo.com/table.csv?\s=%s&a=6&b=19&c=2016&d=9&e=18&f=2016&g=d&ignore=.csv" % ("GOOGL")).read()

现在,许多(如果不是大多数)数据库都支持此功能。

答案 2 :(得分:1)

应该:

final String[] result = "5am-10pm".replaceAll("(\\d)[pa]m", "$1").split("-");
System.out.println(result[0]); // -- 5
System.out.println(result[1]); // -- 10

答案 3 :(得分:0)

使用以下查询:

 select top 1 * from [Your_Table_Name] where [Your_Table_Primary_Name] in
     (select top 3 [Your_Table_Primary_Name] from [Your_Table_Name] order by
      [Your_Table_Primary_Name] desc) 
order by [Your_Table_Primary_Name] asc

描述

1。首先您需要使用以下语法

选择最后三个记录
 select top 3 [Your_Table_Primary_Name] 
 from [Your_Table_Name] 
 order by [Your_Table_Primary_Name] desc

2。之后您需要使用下面的语法

选择第一条记录
 select top 1 * 
 from [Your_Table_Name] 
 where [Your_Table_Primary_Name] in (***First Syntax/Above described Syntax*****) 
 order by [Your_Table_Primary_Name] asc