如何在SQL Server中编写(MySQL)“LIMIT”?

flmtquvp  于 2022-10-22  发布在  SQL Server
关注(0)|答案(3)|浏览(146)

如何将带有LIMIT的MySQL查询转换为SQL Server查询?

SELECT * 
FROM tableEating 
WHERE person = '$identity' 
LIMIT 1;
5t7ly7z5

5t7ly7z51#

LIMIT在T-SQL中不起作用。请改用TOP:

SELECT TOP(1) * FROM tableEating WHERE person = '$identity';

正如Aaron所说,如果不想得到任意行,还需要ORDER BY

n1bvdmb6

n1bvdmb62#

LIMIT不起作用,TOP(1)也可能在嵌套语句中不起作用。
因此,正确的方法是使用OFFSET... FETCH NEXT

SELECT * FROM TableName
OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY

这基本上告诉TSQL从第一行(OFFSET 0)开始取一行(m2n3o1p。

jdgnovmf

jdgnovmf3#

看看2008年的ms页面https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms189463(v=sql.105),更高版本的工作方式相同。如果您想动态使用:

DECLARE @xCount INT = 20
SELECT TOP(@xCount) * FROM ...

相关问题