分页-MS SQL [英] Paging - MS SQL

查看:92
本文介绍了分页-MS SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,
我有一个具有大型数据库(MS-SQL)的大型网站(ASP.NET),我在我的网站中寻找了一种使用分页的好方法.
我找到了两种不错的方法,但是我在决定使用哪种分页方法时遇到了一个小问题,
第一种方法是使用ROW_NUMBER(),原因如下:

Hello,
I have a big web-site(ASP.NET) with a huge data-base(MS-SQL) and i searched for a good way to use paging in my web-site.
I found two good way''s to do it but i have a little problem to decide which paging way to use,
The first way to is to use ROW_NUMBER() in this why:

With ListRec As(
SELECT ROW_NUMBER() OVER(ORDER BY field1,field2) AS rownum,field1,field2,field3 FROM [MyTable] WHERE MyCondition
)
SELECT *
FROM ListRec
WHERE rownum > 90 and rownum <= 100




第二种方法是为什么使用NOT IN:




The second way to is to use NOT IN in this why:

SELECT TOP 10 field1,field2,field3 FROM [MyTable]
WHERE (field1 NOT IN (SELECT TOP 90 field1 FROM [MyTable] WHERE MyCondition ORDER BY field1,field2)) And MyCondition ORDER BY field1,field2



那么,哪种方法是最好的方法?


谢谢,
Roy Shoa.



So, Which way is the best way ?


Thanks,
Roy Shoa.

推荐答案

首选使用更好的选择


First option is better to use


写道:​​

使用ListRec As(
从[MyTable] WHERE MyCondition中选择ROW_NUMBER()OVER(ORDER BY field1,field2)AS rownum,field1,field2,field3 )
选择*
从ListRec
在哪里rownum> 90和rownum< = 100

With ListRec As(
SELECT ROW_NUMBER() OVER(ORDER BY field1,field2) AS rownum,field1,field2,field3 FROM [MyTable] WHERE MyCondition
)
SELECT *
FROM ListRec
WHERE rownum > 90 and rownum <= 100


这篇关于分页-MS SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆