برگزیده های پرشین تولز

SQL سوال

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
سلام،

این دفعه اوله که من دارم تو این فروم پست می ذارم، سوال هم زیاد دارم که این اولیشه :

چه جوری می شه یک (SQL query (select نوشت که محتوای یک جدول رو بر اساس یکی از ستونهاش مرتب کنه، بعد فقط یک تعداد خاص از نتیجه رو مثلاً 5 ردیف اول رو برگردونه؟

مرسی.
 

paran0id

کاربر تازه وارد
تاریخ عضویت
3 فوریه 2006
نوشته‌ها
17
لایک‌ها
0
من با mysql کار میکنم و از اونجا که شاهتش بسیار زیاد هست بهsql فکر میکنم این کد اونجا نیز جواب بده
برای مرتب کردن بر اساس یک فیلد باید کد زیر رو به کوری اضافه کنی ORDER BY `Field Name` و برای اینکه مثلا تعداد نتایج 5 تا باشه باید اینو اضافه کنی LIMIT 5
 

amironline

Registered User
تاریخ عضویت
25 نوامبر 2003
نوشته‌ها
671
لایک‌ها
0
محل سکونت
Tabriz
من با mysql کار میکنم و از اونجا که شاهتش بسیار زیاد هست بهsql فکر میکنم این کد اونجا نیز جواب بده
برای مرتب کردن بر اساس یک فیلد باید کد زیر رو به کوری اضافه کنی ORDER BY `Field Name` و برای اینکه مثلا تعداد نتایج 5 تا باشه باید اینو اضافه کنی LIMIT 5

خوب منم يكم بيشتر توضيح بدم
شما بايد يه query بنويسين و اگه بخواين براساس يه فيلد نزولي مرتب كنين بايد تو قسمت ORDER BY بعد از اسم فيلد از DESC استفاده كنين و اگه بخواين صعودي مرتب بشن بايد تو قسمت ORDER BY بعد از اسم فيلد از ASC استفاده كنين
برا اينكه مثلا بخواين 5 ركورد اول رو چاپ كنين ميتونين از يه حلقه for استفاده كنين

اينم يه نمونه واسه query

SELECT *
FROM crs
ORDER BY cname DESC;​
توضيح اينكه crs اسم جدول و cname هم اسم فيلديه كه ميخوام مرتبسازي براساس اون انجام بگيره
در كل اين query ركوردهاي جدول رو بر اساس cname بصورت نزولي مرتب ميكنه

اگه بازم اشكالي داشته بگو :rolleyes:
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
paran0id جان از راهنماییت ممنون،
این Limit 5 که گفتی اگه کار می کرد خیلی خوب بود. ولی من که می نویسم syntax error میده! من از mssql استفاده می کنم ولی خوب نباید اینقدر باهم فرق داشته باشند. اگه syntax خاصی داره می تونی برام با یه مثال بگی؟

مرسی.

آقای amironline از شما هم ممنون،
ولی قضیه اینه که من میخوام وقتی دیتا رو میریزم توی dataset همون تعداد ردیف که می خوام ریخته بشه چون وقتی ردیفهای جدول زیاد بشن وقت صرف کشیدن ردیفهایی میشه که استفاده نمی شن.

بازهم ممنون.
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
از TOP استفاده کنید:
کد:
SELECT TOP 5 * FROM Table1
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
خوب اگه این تایپک رو از اول تا اخر سر هم کنیم جواب رو گرفتی

کد:
SELECT TOP 5 * FROM [TabelName]  ORDER BY [CalumnName] DESC;

به جای * میتونی اسم ستون هایی رو که میخوای انتخاب بشن بذاری

کد:
Calumn1,Calumn2,Calumn2,....CalumnN

[TabelName] اسم جدولت اه

[CalumnName] اسم ستونی اه که باید بر اساس اون مرتب بشه

در ضمن TOP 5 مال ASP.net اه ، فکر نمیکنم توی کلاسیک کار کنه (برو بچ میکنه ؟؟ ) اگر کلاسک کار میکنی فکر میکنم روش amironline (که منم باهاش موافقم ;) ) روش خوبی باشه !

اگر بخوای فقط یک سری رو از داده های جدول رو انتخاب کنی مثلا اونایی رو که ستون Name ای برابر Ali دارند میتونی این رو بنویسی
کد:
SELECT TOP 5 * FROM [TabelName] where Name='Ali'  ORDER BY [CalumnName] DESC;
 

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
همینه!!!

من دنبال همین TOP بودم، امتحانش هم کردم درست کار می کنه. دست همه برو بچ (به قول H_R !) به خصوص Parham.G که زد به هدف درد نکنه.
 
بالا