PDA

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



Felony
سه شنبه 08 تیر 1389, 18:11 عصر
:لبخندساده:سلام ،

به وسیله کد زیر تونستم 10 رکورد اول بانکم رو فیلتر کنم :


SELECT TOP 10 ID,Name FROM TBL_Sample

حالا میخوام رنج شروع این انتخاب رو تغییر بدم ، مثلا رکورد 100 تا 110 رو فیلتر کنم و نمایش بدم ، از چه دستوری باید استفاده کنم ؟

pezhvakco
سه شنبه 08 تیر 1389, 19:30 عصر
درود :
این کد دستور رو امتحان کن >

SELECT TOP 10 *
FROM Table1 WHERE (ID <= 110)
ORDER BY ID DESC

و http://barnamenevis.org/forum/showthread.php?t=213306&highlight=%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8+%D8 %B3%D8%B7%D8%B1+%D8%AC%D8%AF%D9%88%D9%84

یا
http://barnamenevis.org/forum/showthread.php?t=184074&highlight=%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8+%D8 %B3%D8%B7%D8%B1+%D8%AC%D8%AF%D9%88%D9%84

یا فکر نو ...

فکر خوش .

pestilencia
سه شنبه 08 تیر 1389, 21:46 عصر
select * from table_name where <criteria> limit a,b

از رکورد a به تعداد b رکورد

behrouzlo
چهارشنبه 09 تیر 1389, 20:17 عصر
البته براي 2005 و به بالا

WITH Tbl (Row,Code,Name) AS (
SELECT ROW_NUMBER() OVER (ORDER BY Id),Id,Name FROM TBL_Sample
)
SELECT Id,Name FROM Tbl WHERE Row BETWEEN 100 AND 110

m110_110
چهارشنبه 01 دی 1389, 13:44 عصر
با سلام
من تا ان جا که وقت داشتم چه در اين سايت و چه در ديگر سايتها جستجو کردم و بهترين روشي که تا به حال براي اين کار پيدا کردم شبيه روش کاربر گرامي behrouzlo (http://barnamenevis.org/member.php?12653-behrouzlo) پيدا کردم به عنوان مثال :

select * from ( SELECT *,ROW_NUMBER() OVER (ORDER BY id) as rowID
FROM test)as tbl where rowID between 11 and 20
خيلي هم راحت و خوب هست ولي يه مشکل داره و اون اينکه توي تعداد بالاي رکورد کمي تاخير داره ، مثلا من براي تعداد 1 ميليون رکورد تست کردم و با 1.9 ثانيه جواب گرفتم که اين اصلا براي يک پورتال خوب نيست
و حالا اگر در نظر بگيريد که تعداد کاربران و تعداد رکورد هام اگر زياد بشه ديگه چه مشکلات که پيش نخواهد اومد
و در آخر ايا کسي راه حلي براي اين کار داره که در سريعترين زمان ممکن جواب بده؟؟؟؟
ممنون

tooraj_azizi_1035
شنبه 04 دی 1389, 09:45 صبح
سلام،
قسمت TOP به نتیجه حاصل از اجرای Query نگاه می کنه و به تعداد مورد نظر بر می گردونه. در قسمت WHERE شرط مد نظر را وارد کنید سپس می توانید با TOP تعداد خاصی از ابتدای نتیجه را بر گردانید. نتیجه TOP به نتیجه کل QUERY بستگی دارد.

m110_110
شنبه 04 دی 1389, 10:17 صبح
سلام
ولي من مي خوام يک رنج براي paging برگردونم مثلا 10 تا 20 و يا 2000 تا 2010 رو و اينکه خوب top که تعداد رو از اول نتيجه بر مي گردونه!!!!!!!!!!!!!!!