SELECT TOP <负数=“”> </负>

时间:2015-02-25 17:11:29

标签: sql select

我遇到了一个独特的问题。有没有人知道SQL的SELECT TOP命令是否可以将任何其他参数作为整数以外的输入。是否有任何特殊情况,其中-1用作某些特殊功能的参数。 (例如,从......中选择TOP TOP -1)。

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