【发布时间】:2011-01-09 08:22:49
【问题描述】:
我有一个非常胖的公用表表达式,其中包括行号,以便我可以返回分页结果集。我还想在分页结果集之前返回与查询匹配的记录总数。
with recs as (select *, row_number() over (order by id) as rownum from ......)
select * from recs where rownum between @a and @b .... select count(*) from recs
显然我上面的查询是不完整的,但这只是为了说明我的观点。我想要一页结果和匹配的总数。我如何做到这一点,而不必从字面上复制和粘贴整个 20 多行 CTE?
【问题讨论】:
-
我可能会考虑重命名这个问题,因为接受的答案实际上并没有使用 CTE 两次。
标签: sql-server tsql sql-server-2008 common-table-expression