آژانس هواپیماییexchanging

SQL سوال

شروع موضوع توسط winter ‏4 فوریه 2006 در انجمن asp , ASP.NET

  1. winter

    winter کاربر تازه وارد

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

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

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

    مرسی.
     
  2. paran0id

    paran0id کاربر تازه وارد

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

    amironline Registered User

    تاریخ عضویت:
    ‏25 نوامبر 2003
    نوشته ها:
    674
    تشکر شده:
    0
    محل سکونت:
    Tabriz
    خوب منم يكم بيشتر توضيح بدم
    شما بايد يه query بنويسين و اگه بخواين براساس يه فيلد نزولي مرتب كنين بايد تو قسمت ORDER BY بعد از اسم فيلد از DESC استفاده كنين و اگه بخواين صعودي مرتب بشن بايد تو قسمت ORDER BY بعد از اسم فيلد از ASC استفاده كنين
    برا اينكه مثلا بخواين 5 ركورد اول رو چاپ كنين ميتونين از يه حلقه for استفاده كنين

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

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

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

    winter کاربر تازه وارد

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

    مرسی.

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

    بازهم ممنون.
     
  5. Parham

    Parham Registered User

    تاریخ عضویت:
    ‏24 سپتامبر 2003
    نوشته ها:
    1,039
    تشکر شده:
    1
    از TOP استفاده کنید:
    کد:
    SELECT TOP 5 * FROM Table1
     
  6. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    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;
    
     
  7. appbannerkhuniresbanner
  8. winter

    winter کاربر تازه وارد

    تاریخ عضویت:
    ‏4 فوریه 2006
    نوشته ها:
    58
    تشکر شده:
    0
    همینه!!!

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