PDA

View Full Version : سوال: به دست آوردن رکورد قبلی بدون استفاده از ID



fa_karoon
شنبه 05 مرداد 1392, 11:12 صبح
سلام دوستان طاعاتتون قبول
من می خوام رکورد قبل از یک رکورد خاص که ID اون رو دارم پیدا کنم، نمی خوام بر اساس فیلد ID این کار رو
انجام چون ممکنه حذف از جدول صورت گرفته باشه نمی شه گفت حتما قبل از ID مثلا 23 رکورد با IDی 22 هست
اما من باید رکورد قبل از این رکورد رو پیدا کنم
مرسی

hossein_h62
شنبه 05 مرداد 1392, 11:36 صبح
سلام
اگه سوالتون رو درست متوجه شده باشم همچین کدی کارتون رو حل میکنه :
SELECT top 1 * from Table1
WHERE ID < 23
ORDER BY ID DESC

محمد سلیم آبادی
شنبه 05 مرداد 1392, 14:22 عصر
سلام
اگر فقط ID قبل از 23 رو میخوایید:

SELECT MAX(ID) FROM table_name WHERE ID < 23

pashna
شنبه 05 مرداد 1392, 19:52 عصر
سلام، شما میتونید از فانکشن LAG() هم استفاده کنید

محمد سلیم آبادی
یک شنبه 06 مرداد 1392, 21:59 عصر
سلام، شما میتونید از فانکشن LAG() هم استفاده کنید
دراین مورد این تابع بکار نمی رود. اگر مثلا قرار بود همزمان با داده های سطر جاری مقدار ID قبلی (یا هر مقدار از سطر قبل بر اساس ستون ID) نیز نمایش داده شود حرف شما صحیح بود. در صورتی که کاربر بنظر میرسه قصد داره سطر قبل از سطری که ID آن برابر با 23 است را بدست بیاورد.

یعنی این سطر:

SELECT * FROM table_name WHERE ID =
(SELECT MAX(ID) FROM table_name WHERE ID < 23)