Sql 选择顶部<;负数>;

Sql 选择顶部<;负数>;,sql,select,Sql,Select,我遇到了一个独特的问题。有人知道SQL的SELECT TOP命令是否可以接受除整数以外的任何其他参数作为输入吗。对于某些特殊函数,是否存在将-1用作参数的特殊情况。(例如,从…)中选择TOP-1 检查表达式的语法。您可以指定绝对行数或百分比。您可以选择包括领带 它不允许负数。执行: SELECT TOP(-1) * FROM Table ORDER BY Id 生成错误:前N个值不能为负。 如果需要最下面一行,则必须修改ORDER BY子句: SELECT TOP(1) * FROM Tabl

我遇到了一个独特的问题。有人知道SQL的SELECT TOP命令是否可以接受除整数以外的任何其他参数作为输入吗。对于某些特殊函数,是否存在将-1用作参数的特殊情况。(例如,从…)中选择TOP-1

检查表达式的语法。您可以指定绝对行数或百分比。您可以选择包括领带

它不允许负数。执行:

SELECT TOP(-1) *
FROM Table
ORDER BY Id
生成错误:
前N个值不能为负。

如果需要最下面一行,则必须修改
ORDER BY
子句:

SELECT TOP(1) *
FROM Table
ORDER BY Id DESC
它还有一些奇怪的行为。通常可以省略括号,但在某些情况下可能会失去功能。例如,包含它们意味着您可以指定参数,例如:

DECLARE @rows INT = 10;

SELECT TOP(@rows) *
FROM Table
ORDER BY Id DESC;
但这会产生一个语法错误:

DECLARE @rows INT = 10;

SELECT TOP @rows *
FROM Table
ORDER BY Id DESC;

最后,请记住,
TOP
是不确定的(RDBMS中的一个四个字母的单词),没有
ORDER BY

,结果会是什么?当你尝试它时会发生什么?你为什么要问?如果是因为您看到某个对象将
-1
传递给一个函数或过程,而您知道该函数或过程正在使用
TOP
的值,那么
-1
是否有可能被实际解释为
2147483648
TOP(verylargenumber)
可用作“让我了解一切”的简写。您是否希望“选择TOP-1*…按X描述订购”==“按X ASC选择TOP 1订购”?是的。我在尝试选择top-1时出错。只需确认TOP的存在/不存在,并将-1作为一些特殊输入来显示数值解释以外的内容。我的问题得到了回答。谢谢你……非常感谢……这完美地回答了我的问题。