PDA

View Full Version : معادل دستور First و Last اکسس در SQL



shaghaghi
یک شنبه 12 اسفند 1386, 17:40 عصر
آیا در SQL معادلی برای دستور First یا last داریم یا اینکه باید به سراغ نوشتن Select به ازای هر فیلد برویم؟
بعنوان مثال: جدولی داریم که در آن به ازای هر یک از افراد چند رکورد آدرس و تلفن ثبت شده است. برای خلاصه کردن این جدول در SQL نام فرد را Group By کرده و برای فیلد آدرس و تلفن از دستور MIN یا Max استفاده می کنیم تا از هر فرد فقط یک تلفن و آدرس بدست بیاید. غافل از اینکه چون آدرس و تلفن بطور مجزا از هم براساس حروف الفبا مرتب شده اند در کنار هم فاقد اعتبار هستند. حال اینکه در اکسس براحتی می شود با استفاده از دستور First یا last اولین یا آخرین رکوردی که یافت می شود را می توان نمایش داد.

رضا عربلو
یک شنبه 12 اسفند 1386, 20:07 عصر
من چندان اکسس بلد نیستم ولی این را می دانم که تمام دستوراتی که برای کار با بانک های اطلاعاتی در زبانهای مختلف و یا محیط های مختلف وجود دارند از قبیل همین First ,last نهایتاً به دستورات اس کیو ال تبدیل می شوند و ...

خوشبختانه و یا بدبختانه در اس کیو ال دستوراتی نظیر دستورات First و یا Last نداریم ولی شما می توانید به راحتی با استفاده از امکانات پیشرفته T-SQL به این رکورد ها دسترسی پیدا کنید.

برای پیدا کردن اولین رکورد :


SELECT TOP 1 Field1, ... FROM Table1 ORDER BY Field1

و برا پیدا کردن آخرین رکوزد :
چ

SELECT TOP 1 Field1, ... FROM Table1 ORDER BY Field1 DESC

AminSobati
دوشنبه 20 خرداد 1387, 21:58 عصر
دوست عزیزم،
SQL Server بر پایه نظریه مجموعه ها (Set Theory) عمل میکنه و یک جدول در حقیقت یک Set یا یک مجموعه است. در مجموعه، عضو N ام معنی نداره، چون ترتیب نا شناخته است. اگر نیاز دارید همیشه فرضا اولین یا آخرین رکورد مربوطه رو پیدا کنین، همونطور که در پست قبلی مثال زدن، از Order BY و Top استفاده کنین. اما اگر واقعا باید بین رکوردها یک به یک حرکت کنید، از Cursor استفاده کنید، چون یک مجموعه مرتب به شما میده