sql – CTE,ROW_NUMBER和ROWCOUNT
发布时间:2020-05-27 21:08:31 所属栏目:MsSql 来源:互联网
导读:我试图在一个存储过程中返回一页数据以及所有数据的行计数,如下所示: WITH Props AS( SELECT *, ROW_NUMBER() OVER (ORDER BY PropertyID) AS RowNumber FROM Property WHERE PropertyType = @PropertyType AND ...) SELECT *
|
我试图在一个存储过程中返回一页数据以及所有数据的行计数,如下所示: WITH Props AS
(
SELECT *,ROW_NUMBER() OVER (ORDER BY PropertyID) AS RowNumber
FROM Property
WHERE PropertyType = @PropertyType AND ...
)
SELECT * FROM Props
WHERE RowNumber BETWEEN ((@PageNumber - 1) * @PageSize) + 1 AND (@PageNumber * @PageSize);
我无法返回行数(最高行号). 我知道这已经被讨论了(我看过这个: 解决方法在T-SQL中应该是;WITH Props AS
(
SELECT *,ROW_NUMBER() OVER (ORDER BY PropertyID) AS RowNumber
FROM Property
WHERE PropertyType = @PropertyType AND ...
),Props2 AS
(
SELECT COUNT(*) CNT FROM Props
)
-- Now you can use even Props2.CNT
SELECT * FROM Props,Props2
WHERE RowNumber BETWEEN ((@PageNumber - 1) * @PageSize) + 1 AND (@PageNumber * @PageSize);
现在你有CNT在每一行…或者你想要一些不同的东西?你想要一个只有计数的第二个结果集?然后做吧! -- This could be the second result-set of your query. SELECT COUNT(*) CNT FROM Property WHERE PropertyType = @PropertyType AND ... 注意:reedited,查询1 David正在引用现在已经被垃圾邮件了,查询2现在是查询1. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
