在 SQL Server 中,有效地檢索特定數量的資料至關重要。但是,當所需行數動態變化時,在 SELECT TOP 語句中使用靜態值效率低。本文介紹一種使用動態變數來控制傳回行數的方法。
以下語法示範如何使用變數動態設定要傳回的行數:
<code class="language-sql">DECLARE @count int; SET @count = 20; SELECT TOP (@count) * FROM SomeTable;</code>
與問題中提供的範例不同,此語法在變數名稱周圍包含括號,這對於 SQL Server 2005 及更高版本至關重要。
考慮以下程式碼:
<code class="language-sql">DECLARE @rowCount int; SET @rowCount = 10; SELECT TOP (@rowCount) * FROM Customer WHERE Age > 21 ORDER BY Age DESC;</code>
在此範例中,DECLARE 語句將 @rowCount 變數初始化為整數。隨後的 SET 語句將值 10 指派給該變數。 SELECT 語句在 TOP 子句中使用動態變數 @rowCount,從 Customer 資料表擷取符合 WHERE 和 ORDER BY 條件的前 10 行。
在 SELECT TOP 中使用動態變數的方法與 SQL Server 2005 及更高版本相容。早期版本不支援此語法。
以上是如何動態控制SQL Server SELECT TOP傳回的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!