PDA

View Full Version : انتخاب تعداد مشخصی از رکورد ها



mhamedm2008
چهارشنبه 06 اسفند 1393, 11:05 صبح
با سلام
من برای جستجو در بانک اطلاعاتی از دستور زیر استفاده می کنم

strsql = "SELECT Top 50 * FROM EAndikator WHERE ((sahebv LIKE '%" & [Text12] & "%') AND (sharhv LIKE '%" & [Text14] & "%') AND (tarikhnumber LIKE '%" & [Text17] & "%')) ORDER BY sabt DESC"

حال مشکلم اینه که چون تعداد نتایج جستجو زیاده خیلی طولانی میشه.
می خوام کاری کنم مثلا 50 تا 50 تا نتایج رو نشون بده
از دستور select top 50 استفاده می کنم.50 تای اول رو نشون میده.حالا چه جوری باید 50 تا 100 و 100 تا 150 و .... رو نشون بدم؟؟
با تشکر

ham3d1988
چهارشنبه 06 اسفند 1393, 11:46 صبح
سلام
از صفحه بندی استفاده کنید:
http://www.nikamooz.com/%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86/sql-server-vs-net/sql-server-administration/41-%D8%B5%D9%81%D8%AD%D9%87-%D8%A8%D9%86%D8%AF%DB%8C-%D8%AF%D8%B1-sql-server-2012-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84.html

mhamedm2008
چهارشنبه 06 اسفند 1393, 11:57 صبح
من با ASP کارنمی کنم.
با اکسس و دیتابیس SQL دارم کار می کنم.
باید یک تغییری توی دستور select بدم که بهشم بگم از چه رکورد تا رکوردی رو سلکت کنه

مهدی نان شکری
چهارشنبه 06 اسفند 1393, 14:05 عصر
با سلام
اگر از MS SQL Server ورژن 2012 به بالا استفاده می کنید می توانید شبیه زیر عمل کنید:

select *
from Sales.SalesOrderDetail
order by SalesOrderID
offset 50 rows fetch next 50 row only


دستور بالا 50 رکورد دوم را نمایش می دهد.

اگر از ورژن 2005 و یا 2008 استفاده می کنید می توانید از Row_Number استفاده نمایید.


declare @PageSize int;
set @PageSize = 50;
declare @PageNumber int;
set @PageNumber = 1;

select * from
(
select *,row_number() over(order by od.SalesOrderID) rn
from Sales.SalesOrderDetail od
) dt
where dt.rn > (@PageNumber - 1) * @PageSize and dt.rn <= @PageNumber * @PageSize


اگر از ورژن 2000 استفاده می نمایید از TempTable استفاده کنید.

اگر از اکسس استفاده می نمایید بهتر است در تالار مربوطه بدنبال پاسختان باشید.

موفق باشید

ham3d1988
چهارشنبه 06 اسفند 1393, 16:54 عصر
من با ASP کارنمی کنم.
با اکسس و دیتابیس SQL دارم کار می کنم.
باید یک تغییری توی دستور select بدم که بهشم بگم از چه رکورد تا رکوردی رو سلکت کنه

صفحه بندی توی SQL منظورم بود
همون چیزی که دوستمون نوشتن