shahab2025
جمعه 30 مرداد 1388, 14:54 عصر
سلام . من دو تا فیلد اطلاعاتی دارم که هر دوتاش nvarchar تعریف شده است. در حالیکه یکی از آنها باید number میشد. حالا کاربر رفته و درون همون فیلد به جای عدد، حروف هم تایپ کرده. حالا مشکل من اینه که چطوری بیام این حروف را از تمام n رکورد این فیلد حذف کنم تا بعد بتوانم نوع فیلد را تغییر دهم. حروف ممکنست فارسی یا لاتین باشد.
AminSobati
جمعه 30 مرداد 1388, 15:12 عصر
سلام دوست عزیزم،
چاره ای نیست جز اینکه یک تابع بنویسید و کاراکتر به کاراکتر هر رشته رو بررسی و حذف کنید. این تابع باید در دستور Update استفاده بشه
محمد سلیم آبادی
جمعه 30 مرداد 1388, 16:54 عصر
و اگر می بینید وقت کافی برای نوشتن این تابع ساده ندارید من برایتان این کار را انجام داده ام.
Declare @a Nvarchar(50),
        @b Nvarchar(50),
        @i Int
 
SELECT  @a=N'123 Mr.Amin Sobati 789',           
        @b='';
Set @i=1;
 
While(@i<=Len(@a))
Begin
            IF SubString(@a,@i,1) IN ('1','2','3','4','5',
                                      '6','7','8','9','0')
            Set @b=@b+SubString(@a,@i,1);
            Set @i=@i+1;
End
 
SELECT CAST(@a AS Nvarchar(25)),
       CAST(@b AS Int)
 
نتیجه 
 
------------------------- -------------------------
123 Mr.Amin Sobati 789    123789
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.