Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQL Server find and replace specific word in all rows of specific column

I have a table TblKit that has columns Id and Number. Id is primary key of type int and Number is varchar(50).

The data in the table looks like this:

Id     Number ---    ------ 1      KIT001 2      KIT002  3      DMB001 4      DM002 5      KIT003 

I want to replace all the rows of KIT% with CH in the Number field. The desired output would look like:

Id     Number ---    ------ 1      CH001 2      CH002  3      DMB001 4      DM002 5      CH003 

I have tried this update query:

UPDATE TblKit SET Number = REPLACE(Number, N'%KIT%', 'CH')  

But it is not working.

Can anyone help me regarding this?

like image 959
Dev Avatar asked Nov 23 '12 06:11

Dev


People also ask

How do you replace a word in a column in SQL?

SQL Server REPLACE() Function The REPLACE() function replaces all occurrences of a substring within a string, with a new substring. Note: The search is case-insensitive.

How do I find and replace a word in SQL Server?

On the Edit menu, point to Find and Replace, and then click Quick Find to open the dialog box with find options, but without replace options. On the Edit menu, point to Find and Replace, and then click Quick Replace to open the dialog box with both find options and replace options.

How do you update a substring in SQL?

Update Part of a String in SQL Using the REPLACE() Function We could have done this simpler by using the REPLACE() function. It replaces all occurrences of a specified string value with another string value. The REPLACE function returns a string where it replaces a substring with another substring.


1 Answers

UPDATE tblKit SET number = REPLACE(number, 'KIT', 'CH') WHERE number like 'KIT%' 
  • SQLFiddle Demo

or simply this if you are sure that you have no values like this CKIT002

UPDATE tblKit SET number = REPLACE(number, 'KIT', 'CH') 
  • SQLFiddle Demo
like image 195
John Woo Avatar answered Oct 12 '22 11:10

John Woo