Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用sql查询获得第四高的值_Php_Mysql_Sql - Fatal编程技术网

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

Php 如何使用sql查询获得第四高的值,php,mysql,sql,Php,Mysql,Sql,我有一张学生表,上面有一列分数。我想获得第四高分,表数据按升序排序。只需添加以下子句: LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 除了使用 准备好的发言 对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0而不是1 所以你会写: 选择列名称 从表\u名称 按列名称排序 限制3,1 这应该起作用: SELECT score FROM table ORDER BY score ASC LIMIT 1 OFFSET

我有一张学生表,上面有一列分数。我想获得第四高分,表数据按升序排序。

只需添加以下子句:

LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 除了使用 准备好的发言

对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0而不是1

所以你会写:

选择列名称 从表\u名称 按列名称排序 限制3,1 这应该起作用:

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

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

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 
MSSQL不支持限制。您必须使用TOP关键字或按行数进行限制 这里的链接供您参考

您可以使用ROW_编号来执行此操作

SELECT * FROM (
      SELECT ROW_NUMBER() OVER (ORDER BY score ASC) AS RowNumber,
      *
      FROM student
 ) AS foo
WHERE RowNumber = 4
你将获得第四高分

或者你也可以这样做

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