نمایش نتایج 1 تا 3 از 3

نام تاپیک: آیا دستور remove در SQL وجود دارد؟

  1. #1
    کاربر دائمی آواتار viper2009
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    گوشه کویر
    پست
    728

    آیا دستور remove در SQL وجود دارد؟

    با سلام

    من در دیتا بیس برنامه ام فیلدی دارم که دیتا های آن به این صورت
    87/124
    88/547
    88/1404
    88/2150
    88/1110
    ذخیره شده اند.
    برای مرتب کردن بصورت صعودی مشکل ایجاد شده آنهم این است که وقتی مرتب می کنم اعداد 4 رقمی سمت راست اگر با عدد 1 شروع شده باشند کوچکتر بحساب می آیند و ابتدا آنها مرتب می شوند و اگر سه رقمی باشد و مثلا با 5 شروع شده باشند بعد از اعداد 4 رقمی میان. چطور می توانم این مشکل را حل کنم
    از دستور REPLACE استفاده کردم ولی نشد
    الان باید کاری کنم که ممیز ها را حذف کنم

    "ضمناً نمی خواهم تمام اعداد را یکسان کنم مثلاً تعدادی صفر به اول آنها اضافه کنم چون ممکنه بعده ها یک مشکل دیگه پیدا شود"

  2. #2

    نقل قول: آیا دستور remove در SQL وجود دارد؟

    سلام.
    این مرتب سازی به صورت رشته ای هست.شما برای مرتب کردن یا باید نوع فیلدها رو عددی قرار بدید یا تغییری در محتوای کدینگتون بدین که مرتب باشند. یک راهش این هست که طول همه آنها یکسان باشند.

  3. #3

    نقل قول: آیا دستور remove در SQL وجود دارد؟

    اگر تعداد رکوردها زیاد نیست (به میلیون نمیرسه) میتونید زمان مرتب سازی فرمت اعداد رو ثابت کنید و مقدارهای که نیاز به صفر داره رو اصلاح کنید
    به مثال زیر توجه کنید.
    With TempTable as(
    Select '87/124' as Field1
    UNION ALL
    Select '88/547' as Field1
    UNION ALL
    Select '88/1404' as Field1
    UNION ALL
    Select '88/2150' as Field1
    UNION ALL
    Select '88/1110' as Field1
    )
    Select * From TempTable
    Order by
    SubString(Field1, 0, 2) +
    Right('0000' + SubString(Field1, 4, Len(Field1) - 4), 4)

    در صورتی هم که تعداد رکوردها زیاده ، پیشنهاد میکنم این فیلد رو به 2 فیلد عددی تقسیم کنید که یکی مقدار قبل اسلش و دومی مقدار بعد اسلش رو نگهداری کنه.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •