[asp.net]最好的 t-sql 提供第 n 页中显示数据?

标签: Asp.net SQLServer
发布时间: 2017/3/26 3:45:31
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要通过使用项目 1 到 50 中我的第一页

SELECT TOP(50) * 
FROM Items_table 

和它的优良工程,但如何得到第二 50 项的下一个页面?查询该怎么会呢?

请注意,我不能使用 LIMIT 因为我使用的 SQL 服务器。

我也有类似查询的问题︰

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 代码表适配器支持?

解决方法 1:

我已经达到了与此查询中的表适配器︰

select top (@count) * 
from Items_table
where id not in (select top(@count2) id from Items_table)
order by Date_Of_Creation desc,Time_Of_Creation desc

谢谢您的参与。

更新︰ 请不要使用或者与订购右在内部查询,因为我已经重复结果和一些 bug。另外当您想加载 10 页查询的性能将坏 (执行查询所需的时间不是可以接受的)。

相反,我被迫使用此方法 (和它也是很好)︰

Select TOP (@count) from Item_table
order by Date_Of_Creation desc,Time_Of_Creation desc

然后每一页应包含此查询的行的某些行 (如果要使用多页)。

如果你有一个页面,当用户到达底部时要加载更多,这种方法你应该执行,在此查询每次你想要与更大的 @count 更多负载和负载在页中的项目。

官方微信
官方QQ群
31647020