PDA

View Full Version : جدا کردن کاراکترهای غیر عددی



khorsandreza
دوشنبه 18 آبان 1394, 19:29 عصر
سلام من یک جدول دارم که در داخل ان فیلدهای خاصی وجود دارد مثلا یک رشته عددی است و وسط ان علامت ستاره */ شارپ # / . دات /درصد % و مشابه وجود دارد با استفاده از دستور زیر
update temp_100 set tael = REPLACE(cast(tael as nvarchar(max)), '.', '0') ;
میتوانم کاراکتر را جدا کنم ولی باید برای هر علامت یبار دستور را اجرا کنم حال میخواهم دستور جوری اجرا شود که به استثنای اعداد هر نوع کاراکتری از رشته حذف شود .
تذکر : تاکیدا می خواهم با خود اسکیوال این کد نوشته بشه%

En_MK
سه شنبه 19 آبان 1394, 13:08 عصر
declare @InputString nvarchar(max)='ddd4654654*g'
WHILE PATINDEX('%[^0-9]%',@InputString)>0
SET @InputString = STUFF(@InputString,PATINDEX('%[^0-9]%',@InputString),1,'')
print @InputString

khorsandreza
سه شنبه 19 آبان 1394, 15:42 عصر
declare @InputString nvarchar(max)='ddd4654654*g'
WHILE PATINDEX('%[^0-9]%',@InputString)>0
SET @InputString = STUFF(@InputString,PATINDEX('%[^0-9]%',@InputString),1,'')
print @InputString




دوست گرامی تشکر می کنم مثال شما کاملا کاربردی بود و مشکل من را در این باب حل کرد در ادامه همین یک مشکل دیگه برام پیش اماده و ان این که در بعضی از فبلدهای من خط فاصله Space وجود دارد از انجائی که محاسباتی است می خواهم کلیه فضاهای خالی به عدد صفر تبدیل شود
اگر شبیه دستور بالا باشد راهنمائی کنید

En_MK
شنبه 30 آبان 1394, 15:31 عصر
خواهش میکنم خوشحالم که تونستم کمک کنم
شما با replace ساده میتونید اینکارو انجام بدید




declare @s nvarchar(200)
set @s='s d'
SELECT REPLACE(@s,' ','0')