1

我无法解决SQL SERVER中的那个神秘问题。

这是我尝试做的一个例子,但它没有用。

DECLARE @Total int;
SET @Total = (SELECT COUNT(*)-10 FROM MYTABLE)

SELECT TOP @Total IdColumn FROM MYTABLE

如何使用以下查询

从 MYTABLE 中选择 COUNT(*)-10

作为一个整数变量,在我的代码中的其他地方。

4

2 回答 2

5

在 top 子句中使用变量时,需要使用括号,如下所示:

从 MYTABLE 中选择顶部(@Total)IdColumn

如果您使用的是 SQL2000,则不能在 top 子句中使用变量。如果你尝试,你会得到一个解析/语法错误。相反,您可以使用 RowCount,如下所示:

DECLARE @Total int;
SET @Total = (SELECT COUNT(*)-10 FROM MYTABLE)

Set RowCount @Total
SELECT IdColumn FROM MYTABLE
Set RowCount 0
于 2009-12-09T15:11:05.650 回答
1

使用括号:以下对我有用:

DECLARE @Total int;
SET @Total = (SELECT COUNT(*)-10 FROM MYTABLE)

SELECT TOP (@Total) IdColumn FROM MYTABLE
于 2009-12-09T15:11:35.053 回答