سلام میخواهیم اکسس رکورد اول و دوم را نادیده بگیرد و ۴ رکورد بعدی را نمایش بدهد . کوئری مناسب استفاده از offset است . لطفا نمونه کوئری مناسبی که داخلش از offset استفاده شده بگذارید
سلام میخواهیم اکسس رکورد اول و دوم را نادیده بگیرد و ۴ رکورد بعدی را نمایش بدهد . کوئری مناسب استفاده از offset است . لطفا نمونه کوئری مناسبی که داخلش از offset استفاده شده بگذارید
در کوئری خود، فیلدهای مورد نظر برای نمایش را مشخص کنید.
بعد از SELECT، عبارت OFFSET را اضافه کنید.
در داخل عبارت OFFSET، عددی را برای تعداد رکوردهایی که میخواهید از آنها صرف نظر کنید، مشخص کنید.
بعد از OFFSET، عبارت FETCH را اضافه کنید و در آن تعداد رکوردهایی را که میخواهید بازگردانده شود، مشخص کنید.
مثال:
SELECT *
FROM Customers
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;
این کوئری 10 رکورد اول را نادیده میگیرد و 5 رکورد بعدی را برمیگرداند.
ببین این مشکلتون رو حل میکنه
این کلمات تو اکسس وجود نداره فقط شبیه سازی میشه !یه فیلد ID از نوع اتو نامبر باید بزاری
SELECT TOP 10 *
FROM table1
Where ID NOT IN (SELECT TOP 5 table1.ID FROM table1);
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:27 عصر
چیزی که شما دنبالش هستین بهش میگن: Data Paging - اگر خواستین خودتون گوگل کنین کمک میکنه
پست شماره 4 ایده درست ادامه کار رو میده - ولی حتما یک order by ID نیاز هست.
قبلا در 2 جا به طور مفصل با نمونه کد در موردش بحث شده:
RECORDSET/QUERY PAGING
ADO Recordset Paging