PDA

View Full Version : جایگزین کردن متن



MOJTABAATEFEH
پنج شنبه 07 بهمن 1389, 00:25 صبح
سلام دوستان عزیز میخواستم بدونم چطور میشه با دستورات SQL تمام کاراکترهای خاصی رو پیدا کرد و با کاراکتر دیگه ای جایگزین کرد مثلا در فیلد تاریخ تمام بک اسلش ها رو به اسلش تبدیل کنه در صورتی که کاراکترهای دیگری هم در این فیلد ذخیره شده اند
مثال :
05\12\1389 تبدیل بشه به 1389/12/05

با تشکر

Modifier
پنج شنبه 07 بهمن 1389, 01:02 صبح
سلام
با استفاده از دستور Replace چنین کاری رو میتوان کرد :

SELECT @Result = @Str
SELECT @Result =Replace(@Result,OriginalChar,InstedChar)

MOJTABAATEFEH
پنج شنبه 07 بهمن 1389, 01:08 صبح
سلام
با استفاده از دستور Replace چنین کاری رو میتوان کرد :

SELECT @Result = @Str
SELECT @Result =Replace(@Result,OriginalChar,InstedChar)


دوست عزیز ممنون بابت پاسختون لطفا توضیح بیشتری بدین متغییر str , Result چکاری انجام میدن

با تشکر

Modifier
پنج شنبه 07 بهمن 1389, 09:26 صبح
ابتدا شما یک Select انجام میدین :

Select DateField From MyTable
نتیجه ی این واکشی رو توسط Cursor باز میکنید.
شما یک تابع بنویسید که یک مقدار ورودی دریافت میکند و در Cursor این گونه صدایش کنید :

dbo.Func(@DateField)
مقدار خروجی این تابع را در داخل متغییری بریزید :

Set @Result = dbo.Func(@DateField)
و MyTable رو Update کنید.

در داخل تابع از تابع Replace استفاده کنید.

تعریف تابع :

Create Function Func(@Date nvarchar(10))

یاعلی.

Reza_Yarahmadi
پنج شنبه 07 بهمن 1389, 12:05 عصر
چرا قضیه رو اینقدر پیچیده میکنید!! با یک دستور آپدیت ساده میتونید این کار رو انجام بدید

Update TableName Set FieldName = Replace(FieldName, '\', '/')