View Full Version : یک نمونه کوئری با offset
korosh00
دوشنبه 23 بهمن 1402, 04:19 صبح
سلام میخواهیم اکسس رکورد اول و دوم را نادیده بگیرد و ۴ رکورد بعدی را نمایش بدهد . کوئری مناسب استفاده از offset است . لطفا نمونه کوئری مناسبی که داخلش از offset استفاده شده بگذارید
reza_1199
دوشنبه 23 بهمن 1402, 21:15 عصر
در کوئری خود، فیلدهای مورد نظر برای نمایش را مشخص کنید.
بعد از SELECT، عبارت OFFSET را اضافه کنید.
در داخل عبارت OFFSET، عددی را برای تعداد رکوردهایی که میخواهید از آنها صرف نظر کنید، مشخص کنید.
بعد از OFFSET، عبارت FETCH را اضافه کنید و در آن تعداد رکوردهایی را که میخواهید بازگردانده شود، مشخص کنید.
مثال:
SELECT *
FROM Customers
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;
این کوئری 10 رکورد اول را نادیده میگیرد و 5 رکورد بعدی را برمیگرداند.
ببین این مشکلتون رو حل میکنه
atf1379
دوشنبه 23 بهمن 1402, 21:58 عصر
در کوئری خود، فیلدهای مورد نظر برای نمایش را مشخص کنید.
بعد از SELECT، عبارت OFFSET را اضافه کنید.
در داخل عبارت OFFSET، عددی را برای تعداد رکوردهایی که میخواهید از آنها صرف نظر کنید، مشخص کنید.
بعد از OFFSET، عبارت FETCH را اضافه کنید و در آن تعداد رکوردهایی را که میخواهید بازگردانده شود، مشخص کنید.
مثال:
SELECT *
FROM Customers
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;
این کوئری 10 رکورد اول را نادیده میگیرد و 5 رکورد بعدی را برمیگرداند.
ببین این مشکلتون رو حل میکنه
سلام
آیا خودتون این کد رو در کوئری فایل اکسس امتحان کردین ببین جواب میده یا نه ؟ من امتحان کردم از offset خطا میگیره
moustafa
دوشنبه 23 بهمن 1402, 22:25 عصر
این کلمات تو اکسس وجود نداره فقط شبیه سازی میشه !یه فیلد ID از نوع اتو نامبر باید بزاری
SELECT TOP 10 *
FROM table1
Where ID NOT IN (SELECT TOP 5 table1.ID FROM table1);
mazoolagh
سه شنبه 24 بهمن 1402, 20:15 عصر
SELECT *
FROM Customers
OFFSET 2 ROWS
FETCH NEXT 4 ROWS ONLY
اول از همه این که OFFSET ... FETCH مربوط به MSSQL هست و نه Access SQL
دویم این که همین کد هم درست نیست!
OFFSET ... FETCH به تنهایی در SELECT معنی نداره،
در واقع بخشی از ORDER BY هست:
SELECT CustomerID , CustomerName FROM Customers
ORDER BY CustomerID
OFFSET 2 ROW
FETCH NEXT 4 ROW ONLY
یک نکته دیگه هم هست که البته مستقیما به پرسش ربطی نداره،
ولی دونستنش مفید هست :
به طور کلی از * در SELECT باید پرهیز بشه و اسم فیلدها رو تک تک بیاریم!
البته در کوئری های ساده join نشده با تعداد رکورد و فیلد کم دیده نمیشه اهمیت این موضوع.
mazoolagh
سه شنبه 24 بهمن 1402, 20:24 عصر
میخواهیم اکسس رکورد اول و دوم را نادیده بگیرد و ۴ رکورد بعدی را نمایش بدهد .
چیزی که شما دنبالش هستین بهش میگن: Data Paging - اگر خواستین خودتون گوگل کنین کمک میکنه
پست شماره 4 ایده درست ادامه کار رو میده - ولی حتما یک order by ID نیاز هست.
قبلا در 2 جا به طور مفصل با نمونه کد در موردش بحث شده:
RECORDSET/QUERY PAGING (https://barnamenevis.org/showthread.php?563684&p=2439699&viewfull=1#post2439699)
ADO Recordset Paging (https://barnamenevis.org/showthread.php?563684&p=2440198&viewfull=1#post2440198)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.