请帮我写一个SQL查询 - 我有一个包含id
,name
和marks
列的表格。
如果我按照标记的升序排列表格,我如何获取其标记接近特定名称的5个名称。
答案 0 :(得分:2)
这样的事情应该这样做:
select id, name, marks
from Marks
where name <> 'User1'
order by abs(marks - (select marks from Marks where name = 'User1'))
limit 5
答案 1 :(得分:0)
Microsoft SQL Server
SELECT TOP 10 column FROM table
PostgreSQL和MySQL
SELECT column FROM table
LIMIT 10
<强>的Oracle 强>
SELECT column FROM table
WHERE ROWNUM >= 3 AND ROWNUM < 10
<强> DB2 强>
SELECT column FROM table
FETCH FIRST 10 ROWS
答案 2 :(得分:0)
这样的事情:
select *
from marks m
order by abs(m.mark - (select m2.mark from marks m2 where m2.name = "John Doe"))
limit 5;