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

نام تاپیک: نحوه حذف کردن فضاهای خالی اضافی در یک فیلد

  1. #1

    Question نحوه حذف کردن فضاهای خالی اضافی در یک فیلد

    سلام دوستان
    من چه جوری می تونم این کاررو با استفاده از توابع Sql Server انجام بدم ؟
    فرض کنید که یک فیلدی دارم که آدرس محل سکونت را نگهداری می کند . که مثلا ببرای جداکردن نام خیابان نام کوچه و...... از Space استفاده می شود . حالا فرض کنیم که به جای یک Space چندین Space وارد کردیم .حالا چگونه می توانم با استفاده از توابع این چند فاصله خالی را به یک فاصله خالی تبدیل کنم ؟

    ممنون میشم اگه راهنماییم کنید

  2. #2
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: نحوه حذف کردن فضاهای خالی اضافی در یک فیلد

    سلام
    با دستور Replace خود SQLServer جواب خوبی بدست نمی دهد بهتر است یک UDF پیاده سازی کنید و درون یک حلقه تکرار تا انتهای رشته ورودی اگر کاراکتر قبلی Space باشد آن را در رشته جدید بازگشتی حذف کنید

  3. #3

    نقل قول: نحوه حذف کردن فضاهای خالی اضافی در یک فیلد

    در صورتي كه براي يك رشته ميخوايد ، ميتونيد بصورت زير عمل كيد
    Declare @Str varchar(Max)
    Set @Str ='Reza Yarahmadi'
    WHILE(CharIndex(' ', @Str)<> 0)
    Set @Str = Replace(@Str, ' ', ' ')
    Select @Str
    براي اطلاعات يك جدول هم ميتونيد از روش زير كمك بگيريد(اين روش از 2005 به بالا جواب ميده). در كل روش استانداردي براي اين كار (فكرميكنم!) وجود نداره و بايد با بازي كردن با دستورات اين كار رو انجام بديد.
    Declare @Str1 varchar(Max),@Str2 varchar(Max),@Str3 varchar(Max)
    Set @Str1 ='Reza Yarahmadi'
    Set @Str2 ='Reza Yarahmadi'
    Set @Str3 ='Reza Yarahmadi'
    ;With TempTable as(
    Select @Str1 as Name
    UNION ALL
    Select @Str2 as Name
    UNION ALL
    Select @Str3 as Name
    ), TempTable2 as(
    Select
    Row_Number() Over(Order by Name) as Id,
    Name
    From
    TempTable
    ), res(Id,RowN,Name) as(
    Select
    Id,
    Row_Number() Over(Order by Id) as RowN,
    Name
    From
    TempTable2
    UNION All
    Select
    Id,
    (RowN + 1) as RowN,
    Replace(Name, ' ', ' ') as Name
    From
    res
    Where
    CharIndex(' ', Name) <> 0
    ),Result as(
    Select
    Id,
    Max(RowN) as RowN
    From
    res
    Group By
    Id
    )
    Select
    r.Name
    From
    res r Inner Join Result re
    ON
    r.Id = re.Id
    AND
    r.RowN = re.RowN

  4. #4

    نقل قول: نحوه حذف کردن فضاهای خالی اضافی در یک فیلد

    با تابع REPLACE
    Update tabalname set filde=REPLACE(filde,' ','')

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

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