sql-server - 如何返回执行结果和总行数
问题描述
我有一个过滤多个参数的查询。我想从该查询中返回总行数,但我也想从查询结果中返回 n 行。
查询正文如下所示:
SET @SqlBody = 'select * from Customer c join Address a on c.Id = a.CustomerId
where a.County = @countyParam
order by c.Id Offset @rowOffsetParam rows
fetch next @rowFetchParam rows only'
EXEC(@SqlBody)
@countyParam = 'Texas'
@rowOffsetParam = 0
@rowFetchParam = 20
我想要的是我想知道总共有多少客户来自德克萨斯州的一个县,但我也想只返回 20 行,即使有 2578 客户来自德克萨斯州。
解决方案
<code>SET @SqlBody = 'IF OBJECT_ID (N''#temptable'', N'U') IS NOT NULL DROP TABLE #TEMPTABLE select *,(select Count(*) from Customer c join Address a on c.Id = a.CustomerId
where a.County = @countyParam) as Cnt
into #TEMPTABLE from Customer c join Address a on c.Id = a.CustomerId
where a.County = @countyParam
order by c.Id
SELECT Top 20 * FROM #TEMPTABLE'
EXEC(@SqlBody)</code>
推荐阅读
- jquery - Ajax POST 调用返回 404,即使脚本存在
- c# - 在 Visual Studio 中调试时,某些对象显示为 System.__ComObject
- java - 为什么每次单击时它都会移动同一个圆圈,而不管距离如何?
- c - 使用 c 从字符串中删除重复的连续字符
- go - 我应该使用哪种协议在多个节点之间交换文件?
- java - Lamba 表达式会自动为其入口参数创建新对象吗?
- php - 如何在 Laravel 5.6 中使用路由模型绑定更新用户
- python - 如何将 Pandas DataFrame Column 值与多级索引进行比较?
- php - 如何在 SQL Query 中获取特定 ID
- javascript - 自动播放全屏视频不起作用。不知道是什么问题