У меня есть процедура для возврата набора результатов, который ограничен номером страницы и некоторыми другими вещами. В качестве параметра OUTPUT мне нужно вернуть общее количество выбранных строк в соответствии с параметрами, кроме номера страницы. Итак, у меня есть что-то вроде этого:
WITH SelectedItems AS
(SELECT Id, Row1, Row2, ROW_NUMBER() OVER (ORDER BY Row1) AS Position
FROM Items
WHERE Row2 = @Row2)
SELECT Id, Row1, Row2
FROM SelectedItems
WHERE Position BETWEEN @From AND @To
И тогда мне нужно установить параметр OUTPUT в число строк в innerquery. Я могу просто скопировать запрос и подсчитать его, но этот запрос может вернуть тысячи строк (и будет больше в будущем), поэтому я ищу способ сделать это с хорошей производительностью. Я думал о табличных переменных, это хорошая идея? Или любые другие предложения?
Чтобы быть более конкретным, это Microsoft SQL Server 2008.
Спасибо, Ян