PDA

View Full Version : انتخاب 20 رکورد آخر جدول



Yama12
شنبه 26 مرداد 1387, 10:49 صبح
سلام
کد زیر 20 تای اول یک جدول رو انتخاب میکنه

Select top 20 * from table1
اما من میخوام 20 تای آخر رو که اضافه شده انتخاب کنم چه کدی بنویسیم

rezarafiee
شنبه 26 مرداد 1387, 11:31 صبح
اگر یک فیلد ID در جداولتان تعریف کنید می توانید با استفاده از دستور Order by ID desc رکوردها را از آخر به اول ببینید.

alireza1384
شنبه 26 مرداد 1387, 12:36 عصر
سلام. علاوه بر روش فوق می توانید ازروش زیر نیز استفاده کنید :
یک object از نوع dataTable تعریف کنید . سپس یک object نیز از نوع DataAdapte . حال در دستور fill مربوط به DataAdapter می توانید مشخص کنید که از رکورد چندم به بعد و به چه تعداد استخراج شده و نتیجه در dataTable ذخیره شود :

MyDataAdapter.Fill(StartRecord,MaximumRecord,MyDat aTable)
جهت به دست آوردن شماره رکورد شروع می توانید ابتدا با count تعداد کل رکورد را به دست آورده و آنرا منهای 20 کنید. این روش طولانی تر ازروش قبلی است اما کاربردهای مختلفی دارد.

ar_mokhtari
سه شنبه 19 آبان 1388, 14:15 عصر
اگر از دستور Select Top 20 همزمان با Sort Descending استفاده شود جهت نمايش اطلاعات عوض ميشود. براي بدست آوردن 20 تاي آخر از يك بلوك اطلاعات به همان ترتيب ورود اطلاعات راه حل بفرمائيد.
1- 20
2- 25
3- 18
4- 2
با روش بالا : select top 2 ID from example order by ID desc ميشه:
1- 2
2-18
در حالي كه من اينطوري ميخوام:
1- 18
2- 2

aabedi25
سه شنبه 19 آبان 1388, 15:23 عصر
select from(

select top 2 ID from example order by ID desc

)order by id

nooshin964
سه شنبه 19 آبان 1388, 22:53 عصر
Select * From
(Select Top 2 from TableName Order By FieldName Desc)
Order By FieldName ASC

ali.akhbary
چهارشنبه 20 آبان 1388, 18:53 عصر
سلام. علاوه بر روش فوق می توانید ازروش زیر نیز استفاده کنید :
یک object از نوع dataTable تعریف کنید . سپس یک object نیز از نوع DataAdapte . حال در دستور fill مربوط به DataAdapter می توانید مشخص کنید که از رکورد چندم به بعد و به چه تعداد استخراج شده و نتیجه در dataTable ذخیره شود :

MyDataAdapter.Fill(StartRecord,MaximumRecord,MyDat aTable)
جهت به دست آوردن شماره رکورد شروع می توانید ابتدا با count تعداد کل رکورد را به دست آورده و آنرا منهای 20 کنید. این روش طولانی تر ازروش قبلی است اما کاربردهای مختلفی دارد.

يه سوال پيش مياد. اونم اينكه وقتي از Adapter استفاده مي كنيم، آيا SQL خودش اين چند ركورد رو جدا مي كنه و برامون ميفرسته يا اينكه مياد سمت .net اونوقت ركوردهاي مورد نظر ما جدا ميشند؟؟؟؟؟

البته به نظر خودم كه اين كار سمت برنامه اجرا ميشه. نه سمت SQL.
چون اگه سمت SQL امكانش بود حتما براي اين كا رSYNTAX هم وجود داشت.

اگه اطلاعاتي داريد ممنون ميشم بفرماييد.

ar_mokhtari
پنج شنبه 21 آبان 1388, 11:18 صبح
با راهنمايي كه دوست خوبم aabedi25 (http://barnamenevis.org/forum/member.php?u=53038) و خانم نوشين عزيز فرمودند جواب گرفتم. فقط براي دوستاني كه از اين روش استفاده ميكنند عرض ميكنم كه در صورت استفاده از Join و جداول همزمان دستور #5 و #6 آنها را در قالب يك جدول بنام DRIVEDTBL مي‌آورد كه براي استفاده از فيلدها قبل از انجام اين دستور آنها را انتخاب كنيد تا در مجموعه DRIVEDTBL بيايد.