我有学生表,里面有得分栏。我希望获得第四高分,其中表数据按升序排序。
答案 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