PDA

View Full Version : سوال: مشکل با یک فیلد ناهمگون



shahab2025
جمعه 30 مرداد 1388, 13:54 عصر
سلام . من دو تا فیلد اطلاعاتی دارم که هر دوتاش nvarchar تعریف شده است. در حالیکه یکی از آنها باید number میشد. حالا کاربر رفته و درون همون فیلد به جای عدد، حروف هم تایپ کرده. حالا مشکل من اینه که چطوری بیام این حروف را از تمام n رکورد این فیلد حذف کنم تا بعد بتوانم نوع فیلد را تغییر دهم. حروف ممکنست فارسی یا لاتین باشد.

AminSobati
جمعه 30 مرداد 1388, 14:12 عصر
سلام دوست عزیزم،
چاره ای نیست جز اینکه یک تابع بنویسید و کاراکتر به کاراکتر هر رشته رو بررسی و حذف کنید. این تابع باید در دستور Update استفاده بشه

محمد سلیم آبادی
جمعه 30 مرداد 1388, 15: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