2011-06-08 114 views
23

我正在創建一個SQL Server查詢,它將採用一個參數並將其用作要返回的記錄編號。SQL Server - 使用參數選擇結果集的頂部X

在僞代碼:

parameter returnCount 

select top returnCount * from table where x = y 

什麼是正確的語法/代碼來執行該操作?

+0

你正在使用哪個**版本的SQL Server? – 2011-06-08 21:18:55

+1

兩歲的問題,你是否所以風暴士兵現在只是將它標記爲重複?! – pithhelmet 2014-01-13 16:12:12

+0

永遠不會太晚 – MatteoSp 2016-07-27 09:42:36

回答

51

在2005年的SqlServer和起來,做到這一點:

CREATE PROCEDURE GetResults (
    @ResultCount int 
) 
AS 

SELECT top(@ResultCount) FROM table where x = y 

對於更早的版本,使用:

CREATE PROCEDURE GetResults (
    @ResultCount int 
) 
AS 

SET ROWCOUNT @ResultCount 

SELECT * FROM table where x = y 

http://www.4guysfromrolla.com/webtech/070605-1.shtml瞭解更多信息。

15

與SQL Server 2005(而不是之前),你可以定義一個變量來確定您的TOP返回的行數:

DECLARE @returnCount INT 

SET @returnCount = 15 

SELECT TOP (@returnCount) * 
FROM dbo.table 
WHERE x = y