用于获取10行近似值的sql查询

用于获取10行近似值的sql查询,sql,mysql,Sql,Mysql,请帮助我编写sql查询-我有一个带有id、名称和标记列的表 如果我按标记的升序排列表格,如何提取标记接近某个特定名称的5个名称。类似这样的操作应该可以: select id, name, marks from Marks where name <> 'User1' order by abs(marks - (select marks from Marks where name = 'User1')) limit 5 Microsoft SQL Server PostgreSQL和

请帮助我编写sql查询-我有一个带有id、名称和标记列的表


如果我按标记的升序排列表格,如何提取标记接近某个特定名称的5个名称。

类似这样的操作应该可以:

select id, name, marks
from Marks
where name <> 'User1'
order by abs(marks - (select marks from Marks where name = 'User1')) 
limit 5
Microsoft SQL Server

PostgreSQL和MySQL

神谕

大概是这样的:

select * 
from marks m 
order by abs(m.mark - (select m2.mark from marks m2 where m2.name = "John Doe"))
limit 5; 

你说的接近某个名字是什么意思?你是只想知道这个列表中的前5个名字,还是想知道前5个标记的名字?请更准确一点问题被清楚地标记为MySQL,并且忽略了相关的过滤条件……我注意到了标记,但为了提供信息,我将每个DB名称都加粗。我没有回答整个问题,只是他问的那部分他想拿5排。顺便说一句,你们是Gizmodos小马吗?
SELECT column FROM table 
LIMIT 10
SELECT column FROM table
WHERE ROWNUM >= 3 AND ROWNUM < 10
SELECT column FROM table
FETCH FIRST 10 ROWS
select * 
from marks m 
order by abs(m.mark - (select m2.mark from marks m2 where m2.name = "John Doe"))
limit 5;