我遇到了一个独特的问题。有没有人知道SQL的SELECT TOP命令是否可以将任何其他参数作为整数以外的输入。是否有任何特殊情况,其中-1用作某些特殊功能的参数。 (例如,从......中选择TOP TOP -1)。
答案 0 :(得分:0)
检查TOP
documentation表达式的语法。您可以指定绝对行数或百分比。您可以选择包括联系。
不允许负数。执行:
SELECT TOP(-1) *
FROM Table
ORDER BY Id
生成错误:A TOP N value may not be negative.
如果您想要底行,则必须修改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
。