PDA

View Full Version : سوال: تابعي كه تمام كاراكترهاي "و" را تبديل كند به "ج"



ali_abbasi22145
جمعه 13 آذر 1388, 09:32 صبح
سلام
1.من دستوري مي خواهم كه تمام فاصله هاي خالي را حذف كند يعني عبارت"علي حسيني راد" به "عليحسينيراد" تبديل شود.
تابع replace فقط يك فاصله را حذف مي كند!

2. دنبال تابعي مي گردم كه تمام كاراكترهاي مثلا: "و" را تبديل كند به "ج"

amin_alexi
جمعه 13 آذر 1388, 10:05 صبح
سلام

تابع replace فقط يك فاصله را حذف مي كند!
خیر این طور نیست همه کاراکتر ها رو Replace می کنه!

با تابع Replace برای هر دو سوال کارت راه می افته !


select REPLACE('علي حسيني راد ', ' ', '')


select REPLACE('و او وارد شد!', 'و', 'ج')

mahdi_abdollahi
جمعه 13 آذر 1388, 10:26 صبح
سلام
از این کلاس میتونی در هرجای برنامه استفاده کنی .

ali_abbasi22145
یک شنبه 15 آذر 1388, 19:58 عصر
سلام
use CardDB
UPDATE CardTable
SET
first_name = replace(first_name, 152 , 223),

من كد فوق را نوشتم تا هرجا كاراكتر با كد اسكي 152 به كاراكتر با كد اسكي 223 تبديل كند ولي عملا اين كار درست نمي شود!!!
البته پيغام تغيير كاملا درست انجام شده SQL SERVER 2000 مي دهد

amin_alexi
دوشنبه 16 آذر 1388, 08:53 صبح
2000‌ ندارم كه تست كنم!
ولي ...
وقتي شما به اين صورت مي نويسيد

first_name = replace(first_name, 152 , 223)
SQL Server در اين حالت 152 رو به رشته تبديل مي كنه و در فيلد شما دنبال رشته 152 مي گردي و مي خواد با 223 عوض كنه
چرا همون حروف رو جاي كد Ascii نمي نويسي
ويا مي توني به اين صورت بنويسي

UPDATE CardTable
SET
first_name = replace(first_name, Char(152) , Char(223))