1

一番上の行を選択するための変数が必要です。変数に基づいて上位の行を選択できます。ただし、変数が指定されていない場合は、すべての行を選択したいと考えています。

現在、私はこのクエリを使用しています:

DECLARE @TOPCOUNT int;
SET @TOPCOUNT=10;

SELECT TOP(@TOPCOUNT) * FROM TABLE1

アップデート:

  1. 元のクエリは非常に長く複雑なので、else 句にトップ カウントを含めずにクエリ全体を書き直すことはしません。

  2. 影響があるため、動的クエリは使用したくありません。

4

3 に答える 3

2

このようなもの:

DECLARE @TOPCOUNT int;
--SET @TOPCOUNT=10;

IF @TOPCOUNT IS NULL
    SELECT * FROM TABLE1
ELSE
    SELECT TOP(@TOPCOUNT) * FROM TABLE1

上記の UPDATE の後に追加 - これがストアド プロシージャのパラメータである場合は、次のデフォルトを指定します@TOPCOUNT

@TOPCOUNT INT = 2147483647 --max size of INT
于 2012-05-22T10:39:56.460 に答える
0

このようなものが役立ちます。すべての行が必要な場合は、@TOPCOUNT を -1 で初期化してください。

IF @TOPCOUNT = -1 BEGIN
  SELECT * FROM TABLE1
END
ELSE BEGIN
  SELECT TOP(@TOPCOUNT) * FROM TABLE1
END
于 2012-05-22T10:38:37.407 に答える
0
IF @TOPCOUNT IS NULL SET @TOPCOUNT=2147483647
于 2012-05-22T10:38:44.317 に答える