asp.net - 提供第 n 页显示数据的最佳 t-sql?

标签 asp.net sql-server t-sql tableadapter

我想使用

在我的首页中显示第 1 到 50 项
SELECT TOP(50) * 
FROM Items_table 

它工作正常,但我怎样才能获得下一页的第二个 50 项?查询应该如何?

请注意,我无法使用LIMIT,因为我使用的是 SQL Server。

我也遇到以下查询问题:

select * 
from (
    select 
        ROW_NUMBER() over (
            ORDER BY date_of_creation desc, time_of_creation desc) AS Row2,
        * 
    from 
        Items_table) ir
where 
    ir.Row2 between @start and @end

问题在于此条件表适配器不支持OVER

表适配器是否支持其他 t-sql 代码?

最佳答案

如果您使用的是 SQL Server 2012 或更高版本,那么这将对您有所帮助

DECLARE @RowsPerPage INT = 50; 
DECLARE @PageNumber INT = 2; 

SELECT *
FROM ItemsTable
ORDER BY date_of_creation desc, time_of_creation desc
OFFSET (@PageNumber - 1) * @RowsPerPage ROWS
FETCH NEXT @RowsPerPage ROWS ONLY

变量@PageNumber指定您要检索的页面(第一、第二......等)

关于asp.net - 提供第 n 页显示数据的最佳 t-sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31096998/

相关文章:

c# - c# 代码上的 ImageURL 不显示图像

sql-server - 获取具有 MIN/MAX 值的行的其他字段值

asp.net - dotnet 框架 4.5.2 的生命周期何时结束

sql - 为什么我不能在 SQL Management Studio 的开始/结束 block 中使用 "create schema"?

sql - SQL Server 中的 'describe table' 相当于什么?

sql-server - CSV 中的 T-SQL OpenRowSet 缺少标题行

sql-server - 在 T-SQL 中,为什么 ISJSON 函数在 CTE 中使用时没有过滤掉不良数据?

sql - 按记录分组,然后从每组中获取最后一个升序排序记录?

javascript - 关于 Web 应用程序架构的决策

c# - asp.net mvc razor 中的可点击单选按钮文本