SQL Server - используйте параметр для выбора верхнего X набора результатов
Я создаю запрос SQL Server, который будет принимать параметр и использовать его как возвращаемый номер записи.
В псевдокоде:
parameter returnCount
select top returnCount * from table where x = y
Каков правильный синтаксис/код для выполнения этой операции?
Ответы
Ответ 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