PDA

View Full Version : انتخان nامین ردیف هنگام Select کردن از SQL



kkkaka
شنبه 21 بهمن 1391, 15:28 عصر
سلام به همه ...
بنده چطور میتونم هنگام سلکت کردن تنها ردیف دلخواهمو ، بدون استفاده از شرط Where بدست بیارم؟؟؟
مثلا با دستور top میشه تعداد ردیفه دلخواه را باز گردادند حال اگر بنده بخواهم مثلآ ردیف 3 را برگردانم چطور باید این کار را انجام بدم؟؟؟
مرسی از همه...

محمد سلیم آبادی
شنبه 21 بهمن 1391, 16:09 عصر
با دو Top میشه این کار را انجام داد مثل:
select top 1 *
from
(
select top 3 *
from table_name
order by column1 asc
)t
order by column1 desc;
ولی پیشنهاد من استفاده از تابع row_number است چیزی شبیه به این:
select *
from
(
select *, row_number() over(order by column1) rnk
from table_name
)t
where rnk = 3;
من فرض گرفتم قرار است بر اساس ستون column1 مرتب سازی انجام شود و سومین سطر از نتیجه مرتب شده انتخاب شود.

محمد سلیم آبادی
شنبه 21 بهمن 1391, 23:20 عصر
برای آشنایی با یکی از کاربرد های تابع row_number به اینجا میتوانید مراجعه کنید:
http://www.dotnettips.info/post/1213/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%85%D8%B3%D8%A7%D9%84%D9%87-%D9%85%D8%AA%D8%AF%D8%A7%D9%88%D9%84-top-n-%D8%AF%D8%B1-%D9%86%D8%B3%D8%AE%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D8%AE%D8%AA%D9%84%D9%81-sql-server