【问题标题】:SQL Server - use a parameter to select the top X of the result set [duplicate]SQL Server - 使用参数选择结果集的前 X [重复]
【发布时间】:2011-06-08 21:16:29
【问题描述】:

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

在伪代码中:

parameter returnCount

select top returnCount * from table where x = y

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

【问题讨论】:

  • 您使用的是哪个版本的 SQL Server??
  • 两年前的问题,你们这些冲锋队刚刚把它标记为重复?!!
  • 永远不会太晚
  • 是的,谷歌比其他人更喜欢这个问题 - 搜索我的最高结果。因此,它对各位先生们很有帮助、相关且 +1。

标签: sql-server


【解决方案1】:

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

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 了解更多信息。

【讨论】:

  • 不错的答案!谢谢
【解决方案2】:

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

DECLARE @returnCount INT

SET @returnCount = 15

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

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 2023-04-08
    • 2019-11-29
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 2023-03-22
    • 2019-10-26
    • 1970-01-01
    相关资源
    最近更新 更多