我有一个程序来返回一个受页码和其他东西限制的结果集。作为 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 参数设置为内部查询中的行数。我可以只复制查询并对其进行计数,但是此查询可能会返回数千行(并且将来会更多),因此我正在寻找具有良好性能的方法。我在考虑表变量,这是个好主意吗?或者有什么其他建议?
更具体地说,它是 Microsoft SQL Server 2008。
谢谢你,简