SQL Server 'FETCH FIRST 1 ROWS ONLY' Недопустимое использование

Я пытаюсь преобразовать запрос Db2 в SQL Server, я столкнулся с конструкцией, с которой я не знаком: FETCH FIRST 1 ROWS ONLY.

Это запрос, работающий на db2:

select * from products.series where state = 'xxx' order by id 
FETCH FIRST 1 ROWS ONLY

и ошибка, которую я получаю на SQL Server:

Invalid usage of the option FIRST in the FETCH statement.

Я попытался заменить FIRST на NEXT, который, кажется, допускается в SQL Server, но безуспешно.

Я использую SQL Server 2014.


person Argentina    schedule 26.04.2017    source источник
comment
Какая версия sql сервера?   -  person Oto Shavadze    schedule 26.04.2017
comment
Я использую SQL Server 2014   -  person Argentina    schedule 26.04.2017


Ответы (3)


Попробуйте с пунктом OFFSET

select * from products.series where state = 'xxx' order by id 
OFFSET 0 ROWS
FETCH NEXT 1 ROWS ONLY
person Oto Shavadze    schedule 26.04.2017
comment
Просто имейте в виду, что этот синтаксис был представлен в SQL Server 2012 и не может использоваться в более ранних версиях (например, SQL Server 2008 или SQL Server 2008 R2). Просто предостережение для тех, кто читает вместе. Решение TOP работает со всеми версиями SQL Server. - person pmbAustin; 26.04.2017


Вы можете использовать функцию top()'

select top 1 * from table
person MileP    schedule 26.04.2017