I need to convert case for letter that comes after hyphen (-) in all values of a column
like
Aaa - aaa
Bbbdd - bbbdd
Ccc123 - ccc123
to
Aaa - Aaa
Bbbdd - Bbbdd
Ccc123 - Ccc123
Please help!
I need to convert case for letter that comes after hyphen (-) in all values of a column
like
Aaa - aaa
Bbbdd - bbbdd
Ccc123 - ccc123
to
Aaa - Aaa
Bbbdd - Bbbdd
Ccc123 - Ccc123
Please help!
Using stuff()
:
declare @str varchar(64) = 'Aaa - aaa'
select stuff(@str,charindex('-',@str)+2,1,upper(substring(@str,charindex('-',@str)+2,1)))
rextester demo: http://rextester.com/CCIZDT37194
Returns: Aaa - Aaa
Well if the format doesn't change here's an easy way. It works for n - n characters
declare @char varchar(64) = 'Aaa - aaa'
select
@char
,substring(@char,1,CHARINDEX('-',@char,1)) + ' ' + upper(substring(@char,CHARINDEX('-',@char,1) + 2,1)) + substring(@char,CHARINDEX('-',@char,1)+3,len(@char))
Otherwise you need a UDF
This might help.
DECLARE @InputString VARCHAR(MAX) = 'Aaa - aaa';
DECLARE @Index INT = CharIndex('-', @InputString);
DECLARE @StringToReplace VARCHAR(3) = SUBSTRING ( @InputString ,@Index , 3 );
SELECT REPLACE(@InputString,@StringToReplace,UPPER(@StringToReplace));
You can use upper and ParseName
select concat(parsename(Replace(v,' - ', '.'),2), ' - ', Upper(substring(parsename(Replace(v,' - ', '.'),1),1,1)), substring(parsename(Replace(v,' - ', '.'),1),2,len(parsename(Replace(v,' - ', '.'),1))))
from #yourtext
Your Input table:
create table #yourtext (v varchar(100))
insert into #yourtext (v) values
('Aaa - aaa')
,('Bbb - bbb')
,('Ccc - ccc')