SQL Server'FETCH FIRST 1 ROWS ONLY'使用无效

Arg*_*ina 8 sql sql-server db2

我试图将Db2查询转换为SQL Server,我遇到了一个我不熟悉的构造:FETCH FIRST 1 ROWS ONLY.

这是在db2上运行的查询:

select * from products.series where state = 'xxx' order by id 
FETCH FIRST 1 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

和我在SQL Server上得到的错误:

Invalid usage of the option FIRST in the FETCH statement.
Run Code Online (Sandbox Code Playgroud)

我试过用NEXT取代FIRST,似乎在SQL Server中被录取,但没有成功.

我正在使用SQL Sever 2014

Oto*_*dze 13

试试OFFSET条款

select * from products.series where state = 'xxx' order by id 
OFFSET 0 ROWS
FETCH NEXT 1 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

  • 请注意,此语法是随SQL Server 2012引入的,不能与早期版本(如SQL Server 2008或SQL Server 2008 R2)一起使用.对于那些阅读的人来说只是一个警告."TOP"解决方案适用于所有版本的SQL Server. (3认同)

Sql*_*Zim 12

用途top:

select top 1 * from products.series where state = 'xxx' order by id 
Run Code Online (Sandbox Code Playgroud)

  • 我想使用 TOP 会给出相同的结果,但如果可能的话,我更喜欢保持语法尽可能与 db2 查询相似 (2认同)