running SQL sever 2016
say i have values like
Type |
---|
Coat 2 |
Furry Coat 1 |
Coat 2 |
Furry Coat 3 |
Coat 5 |
Furry Coat 1 |
Coat 3 |
Furry Coat 3 |
i want to replace all the strings that say "Coat" to "Skinny Coat" within my query but i dont want to include the "Furry Coat" values. how do i do this? i tried using the
replace(Type, 'Coat', 'Skinny Coat') as Type
but it changes all strings
thanks
CodePudding user response:
You could use CASE
logic along with LIKE
here:
SELECT Type,
CASE WHEN Type NOT LIKE 'Furry Coat%'
THEN REPLACE(Type, 'Coat', 'Skinny Coat') ELSE Type END AS NEW_TYPE
FROM yourTable;
CodePudding user response:
You Exclude 'Furry Coat'
SELECT REPLACE(Type, 'Coat', 'Skinny Coat') as Type
FROM TABLE
WHERE TYPE NOT IN ('WHAT','YOU','WANT','TO','EXCLUDE);