首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

问一个SQL话语 如果加个分页效果

2013-03-26 
问一个SQL语句 如果加个分页效果SELECT top 5 O.OrderType,O.ShippingMethod,OA.* FROM Orders O ,OrderAd

问一个SQL语句 如果加个分页效果

SELECT top 5 O.OrderType,O.ShippingMethod,  OA.* FROM Orders O ,OrderAddress  OA 
WHERE O.ORDERID =OA.OrderID  AND O.OrderStatusID<690 AND IsHoldOn =0 AND OA.IsBillingAddress=0 AND O.IsDeleted=0 

上面语句是查询 Orders O ,OrderAddress OA 这二个表数据 

for(int i=0;i<10;i++){
 我现在是需求是 这个循环 去使用上面的语句, 上面每次查询5 条记录,分页的条件就是这个i 值  就是i=0 查询前5条, i=1 查询6到10条, 
}
求大家帮忙个 上面语句如何加个分页效果。
[解决办法]
你直接在select的时候,添加一个新列,使用ROW_NUMBER() as ID,具体使用google一下,然后where ID between 6 and 10直接选取数据。
你现在的设计,会返回所有数据,引起不必要的资源消耗。
[解决办法]



select top(5) * from 
(
select top((@i+1) * 5) O.OrderType,O.ShippingMethod,  OA.* FROM Orders O ,OrderAddress  OA 
WHERE O.ORDERID =OA.OrderID  AND O.OrderStatusID<690 AND IsHoldOn =0 AND OA.IsBillingAddress=0 AND O.IsDeleted=0 
order by O.ORDERID asc
)
order by 
O.ORDERID desc

热点排行