SQL Server - 使用参数选择结果集的前X个

pit*_*met 31 sql-server

我正在创建一个SQL Server查询,它将获取一个参数并将其用作要返回的记录号.

在伪代码中:

parameter returnCount

select top returnCount * from table where x = y
Run Code Online (Sandbox Code Playgroud)

执行该操作的语法/代码是什么?

age*_*t-j 64

在SqlServer 2005及更高版本中,执行以下操作:

CREATE PROCEDURE GetResults    (
    @ResultCount   int
)
AS

SELECT top(@ResultCount) FROM table where x = y
Run Code Online (Sandbox Code Playgroud)

对于早期版本,请使用:

CREATE PROCEDURE GetResults    (
    @ResultCount   int
)
AS

SET ROWCOUNT @ResultCount

SELECT * FROM table where x = y
Run Code Online (Sandbox Code Playgroud)

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


mar*_*c_s 21

从SQL Server 2005开始(但不是之前),您可以定义一个变量来确定返回的TOP行数:

DECLARE @returnCount INT

SET @returnCount = 15

SELECT TOP (@returnCount) * 
FROM dbo.table 
WHERE x = y
Run Code Online (Sandbox Code Playgroud)