View Full Version : نزدیک ترین اعداد نسبت به یک عدد
programer1389
شنبه 01 خرداد 1389, 12:42 عصر
یک فیلد دارم که توش شماره ملی افراد قرار داره میخواهم 20 شماره ملی که نزدیکترین شماره ها به این شماره باشه رو دربیارم چکار کنم
به عنوان مثال شماره ملی 100 رو در نظر بگیرید میخواهم اگه تو بانک عدد 98 و عدد 101 باشه هردوی این اعداد در نتیجه کارم دیده بشه
amir_alaki
شنبه 01 خرداد 1389, 12:48 عصر
با سلام
می تونین از Between و یا از >= . >= استفاده کنین.
Select Id,Name,Family From TblPerson Where Code>=100-20 And Code <=100+20
البته اگر Code به ترتیب باشه و گر نه اگر دقیقا می خوای که به تعداد مشخص n تا انتخاب داشته باشی یعنی حتما 20 تا بهتره که از Cursor استفاده کنی
موفق باشید
محمد سلیم آبادی
شنبه 01 خرداد 1389, 16:31 عصر
یک فیلد دارم که توش شماره ملی افراد قرار داره میخواهم 20 شماره ملی که نزدیکترین شماره ها به این شماره باشه رو دربیارم چکار کنم
به عنوان مثال شماره ملی 100 رو در نظر بگیرید میخواهم اگه تو بانک عدد 98 و عدد 101 باشه هردوی این اعداد در نتیجه کارم دیده بشه
اگر از SQL Server 2005 یا بالاتر استفاده می کنید، اینو امتحان کنید:
SELECT *
FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY id ASC) AS rec
FROM table_name) D
WHERE ABS((SELECT COUNT(*)
FROM table_name
WHERE id <= 100)-rec) <= 20;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.