如何使用sql查询获得第四高的值

时间:2014-09-19 10:05:03

标签: php mysql sql

我有学生表,里面有得分栏。我希望获得第四高分,其中表数据按升序排序。

5 个答案:

答案 0 :(得分:4)

SELECT score FROM table ORDER BY score ASC LIMIT 1 OFFSET 4 

希望这有效,快乐编码

答案 1 :(得分:2)

只需添加LIMIT子句:

  

LIMIT子句可用于约束返回的行数   通过SELECT语句。 LIMIT需要一个或两个数字参数,   必须都是非负整数常量(使用时除外)   准备好的陈述)。

     

使用两个参数,第一个参数指定的偏移量   第一行返回,第二行指定最大数量   要返回的行。初始行的偏移量为0(不是1)

所以你会写:

SELECT column_name
FROM table_name
ORDER BY column_name
LIMIT 3, 1

答案 2 :(得分:0)

SELECT score
FROM student
ORDER BY score asc
LIMIT 3, 1

答案 3 :(得分:0)

对于SQL Server查询,可以使用以下语句:

with data as 
(
    select
        ROW_NUMBER() OVER (ORDER BY id) as rownum,
        id
    from thetable 
)
select * from data 
where rownum = 4 
order by id asc 

答案 4 :(得分:0)

MSSQL不支持LIMIT。您必须使用TOP关键字或ROW_NUMBER()来执行此操作 这里提供的链接是LIMIT IN MSSQL

您可以使用ROW_NUMBER()

来完成
SELECT * FROM (
      SELECT ROW_NUMBER() OVER (ORDER BY score ASC) AS RowNumber,
      *
      FROM student
 ) AS foo
WHERE RowNumber = 4

你将获得第4高分

或者你也可以这样做

SELECT * FROM (
      SELECT ROW_NUMBER() OVER (ORDER BY score ASC) AS RowNumber,
      *
      FROM student
 ) AS foo
WHERE RowNumber >3 and <=4