我需要在列的所有值中将连字符( - )后面的字母转换为
像
Aaa - aaa
Bbbdd - bbbdd
Ccc123 - ccc123
到
Aaa - Aaa
Bbbdd - Bbbdd
Ccc123 - Ccc123
请帮忙!
答案 0 :(得分:1)
使用declare @str varchar(64) = 'Aaa - aaa'
select stuff(@str,charindex('-',@str)+2,1,upper(substring(@str,charindex('-',@str)+2,1)))
:
Aaa - Aaa
rextester演示:http://rextester.com/CCIZDT37194
返回:{{1}}
答案 1 :(得分:0)
如果格式没有改变,那么这是一种简单的方法。它适用于n - n个字符
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))
否则你need a UDF
答案 2 :(得分:0)
这可能会有所帮助。
var faceList = new List<int>{ 50, 2, 4, 5, 43, 42, 44, 14, 50, 44, 23, 2, 16, 4, 5, 23, 33};
var uniqueList = new Dictionary<int,int>();
var restructuredList = new List<int>();
var i = 0;
faceList.ForEach(f =>
{
if (uniqueList.ContainsKey(f))
{
restructuredList.Add(uniqueList[f]);
return;
}
restructuredList.Add(i);
uniqueList.Add(f, i++);
});
答案 3 :(得分:0)
您可以使用upper和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
您的输入表:
create table #yourtext (v varchar(100))
insert into #yourtext (v) values
('Aaa - aaa')
,('Bbb - bbb')
,('Ccc - ccc')