如何将带有LIMIT的MySQL查询转换为SQL Server查询?
SELECT * FROM tableEating WHERE person = '$identity' LIMIT 1;
5t7ly7z51#
LIMIT在T-SQL中不起作用。请改用TOP:
SELECT TOP(1) * FROM tableEating WHERE person = '$identity';
正如Aaron所说,如果不想得到任意行,还需要ORDER BY。
ORDER BY
n1bvdmb62#
LIMIT不起作用,TOP(1)也可能在嵌套语句中不起作用。因此,正确的方法是使用OFFSET... FETCH NEXT:
LIMIT
TOP(1)
OFFSET... FETCH NEXT
SELECT * FROM TableName OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
这基本上告诉TSQL从第一行(OFFSET 0)开始取一行(m2n3o1p。
OFFSET 0
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 ...
3条答案
按热度按时间5t7ly7z51#
LIMIT在T-SQL中不起作用。请改用TOP:
正如Aaron所说,如果不想得到任意行,还需要
ORDER BY
。n1bvdmb62#
LIMIT
不起作用,TOP(1)
也可能在嵌套语句中不起作用。因此,正确的方法是使用
OFFSET... FETCH NEXT
:这基本上告诉TSQL从第一行(
OFFSET 0
)开始取一行(m2n3o1p。jdgnovmf3#
看看2008年的ms页面https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms189463(v=sql.105),更高版本的工作方式相同。如果您想动态使用: