1

SQLSERVERでその謎の質問を解決できませんでした。

これが私がやろうとしたがうまくいかなかった例です。

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

SELECT TOP @Total IdColumn FROM MYTABLE

次のクエリを使用するにはどうすればよいですか

MYTABLEからCOUNT(*)-10を選択

整数変数として、私のコードのどこかで。

4

2 に答える 2

5

top句で変数を使用する場合は、次のように括弧を使用する必要があります。

SELECT TOP(@Total)IdColumn FROM MYTABLE

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 に答える