c# - 如何创建t-sql来加载下n条记录?

标签 c# sql sql-server tsql pagination

我需要一个创建 t-sql 查询以加载下 10 条记录的示例(取决于网格中的默认行数)。

同一种linq要跳行

例如,我有 100K 个结果,我只需要加载 100 到 110 条记录之间的 10 个,依此类推。这个想法是让它的页面加载速度非常快

我还需要为我的网格构建分页,所以我需要知道总共有多少条记录

最佳答案

在 MS SQL 2005/2008 中你可以这样做

with cte
as
(
    select row_number() over (order by ID) RowNumber, *
    from MyTable
) 
select *
from cte
where RowNumber between 10 and 20

[编辑] 带总计数列

select *
from
(
    select
        row_number() over (order by ID) RowNumber, 
        count(*) over() TotalRowCount,
        *
    from MyTable
) tt
where RowNumber between 10 and 20

关于c# - 如何创建t-sql来加载下n条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079592/

相关文章:

mysql - 创建触发器 - DECLARE 时出错

php - 如何将SQL中的第一列更改为文本格式到XLS?

sql-server - 错误阻止加载 View

sql-server - 将两列转换为键值 json 对象?

sql-server - 将增量值插入表中

c# - Fiddler 不捕获来自 C# 应用程序的请求

c# - 有没有更好的方法来避免使用 winforms 的无限循环?

c# - 重定向文件系统

c# - C# 中输出参数的良好实践

mysql - 获取给定时间段内分组项目的最新值,包括。零和空值