SQL Server では、TOP キーワードを使用すると、ユーザーはクエリから返される最大行数を指定できます。ただし、動的変数を使用して TOP 値を直接設定することはできません。
動的な TOP 値の設定を実現するには、別の方法を使用する必要があります。これを効率的に行う方法は、次のように @var を括弧で囲むことです:
<code class="language-sql">SELECT TOP (@count) * FROM SomeTable</code>
この構文は SQL Server 2005 以降でサポートされています。 @count 変数はクエリの実行時に評価され、取得する行数が決定されます。
たとえば、次のようなクエリがあるとします。
<code class="language-sql">DECLARE @count int SET @count = 20 SELECT * FROM SomeTable</code>
このクエリが実行されると、SomeTable テーブル内のすべての行が返されます。ただし、結果を最初の 20 行に制限したい場合は、動的 TOP テクニックを使用できます。
<code class="language-sql">SELECT TOP (@count) * FROM SomeTable</code>
@count 変数が 20 に設定されているため、このクエリは SomeTable テーブルの最初の 20 行のみを返します。
このメソッドは、クエリ自体を変更せずにクエリから返される行数を動的に制御する便利な方法を提供します。
以上がSQL Server クエリで TOP 句を動的に設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。