Да, это возможно, но реализация будет зависеть от вашей СУБД.
Вот как это выглядит в MySQL, PostgreSQL и SQLite:
select ID, value
from YourTable
where id >= 7
order by id
limit 1
В MS SQL-Server, Sybaseи MS-Access:
select top 1 ID, value
from YourTable
where id >= 7
order by id
В Oracle:
select * from (
select ID, value
from YourTable
where id >= 7
order by id
)
where rownum = 1
В Firebird и Informix:
select first 1 ID, value
from YourTable
where id >= 7
order by id
В DB / 2 (этот синтаксис используется в SQL-2008):
select id, value
from YourTable
where id >= 7
order by id
fetch first 1 rows only
В тех СУБД, которые имеют «оконные» функции (в стандарте SQL-2003):
select ID, Value
from (
select
ROW_NUMBER() OVER (ORDER BY id) as rownumber,
Id, Value
from YourTable
where id >= 7
) as tmp --- remove the "as" for Oracle
where rownumber = 1
И если вы не уверены, какая СУБД у вас есть:
select ID, value
from YourTable
where id =
( select min(id)
from YourTable
where id >= 7
)