PDA

View Full Version : حذف بخشی از رشته



maryam_jamshid
دوشنبه 07 تیر 1389, 10:23 صبح
من یه جدول دارم یه فیلد به اسم address داره،حالا میخوام از جدولم بخشی از محتویات فیلد address رو حذف کنم.(نمیخوام رکوردها حذف بشه)

چطوری میشه اینکار رو کرد؟

pezhvakco
دوشنبه 07 تیر 1389, 10:38 صبح
درود :
یه راهش استفاده از دستور جایگزینی است >

REPLACE(Col1,مقدار جدید, مقدار فعلی)

فکر خوش.

behrouzlo
دوشنبه 07 تیر 1389, 11:41 صبح
فكر كنم شما مي خواهيد طول فيلد آدرس را كوتاهتر كنيد يا يك چيزي شبيه اين براي اينكار مي توانيد از دستورهاي Left و Substring استفاده كنيد و با آن فيلد را بروزرساني كنيد.

maryam_jamshid
دوشنبه 07 تیر 1389, 12:18 عصر
میشه یه مثال بزنید.؟
===================
مثلا فیلد address ایی دارم به صورت زیر:
address
- -----------------
tehran -kheyaban esar,kocheye golaha
tehran -kheyaban babak,kocheye gokha

میخوام kocheye golha رو از رکوردهام حذف کنم،(ضمنا تعداد رکوردهام زیاد هست)

behrouzlo
دوشنبه 07 تیر 1389, 12:30 عصر
به صورت زير:
UPDATE TBL SET Address = REPLACE(Address,'kocheye golaha','')

pezhvakco
دوشنبه 07 تیر 1389, 13:11 عصر
این کد دستور شرطی رو امتحان کن :

UPDATE Table1
SET Address = CASE WHEN CHARINDEX('kocheye golha', Address) > 0 THEN REPLACE(Address,'kocheye golha ','')
ELSE Adress
END

فکر خوش .

محمد سلیم آبادی
دوشنبه 07 تیر 1389, 14:27 عصر
به صورت زير:
UPDATE TBL SET Address = REPLACE(Address,'kocheye golaha','')


این کد دستور شرطی رو امتحان کن :

UPDATE Table1
SET Address = CASE WHEN CHARINDEX('kocheye golha', Address) > 0 THEN REPLACE(Address,'kocheye golha ','')
ELSE Adress
END

فکر خوش .

چون مطمئنا تنها نمونه های کمی از کل سطرها قرار است ویرایش شوند، پس خیلی بهتر است که سطرهایی را که باید ویرایش شوند را فیلتر کنیم.
یعنی کد به شکل زیر در خواهد آمد:


UPDATE table1
SET Address = REPLACE(Address, 'kocheye golha', '')
WHERE CHARINDEX('kocheye golha', address) > 0 ;


البته یادم هست که قبلا یک کوئری ویرایش نوشته بودم که شبیه به روش پست قبلی بود ولی بعد از پست کردن متوجه شدم بهتره کد به شکل فوق در بیاد ولی دیگه کدم را ویرایش نکردم.