Подтвердить что ты не робот

SQL Server - используйте параметр для выбора верхнего X набора результатов

Я создаю запрос SQL Server, который будет принимать параметр и использовать его как возвращаемый номер записи.

В псевдокоде:

parameter returnCount

select top returnCount * from table where x = y

Каков правильный синтаксис/код для выполнения этой операции?

4b9b3361

Ответ 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