字符串处理问题
SQL 字符串处理问题
如何去掉所有空格,
然后
第一位是a 的后面空两格;第10位是字母的后面也空一格;如果第10,11位都是字母的,第11位不空格。
------解决方案--------------------declare @s varchar(20)
set @s= 'a00012 5a852 '
select
case
when
PATINDEX ( '%[a-z]% ' ,reverse(substring(@s,1,10)) )=1
then
case
when
PATINDEX ( '%[a-z]% ' ,substring(@s,11,len(@s)-10))=1
then
left(replace(@s, ' ', ' '),1)+ ' '+right(replace(@s, ' ', ' '),len(replace(@s, ' ', ' '))-1)
else
left(replace(@s, ' ', ' '),1)+ ' '+replace(substring(@s,2,9), ' ', ' ')+ ' '+replace(substring(@s,11,len(@s)-10), ' ', ' ')
end
else
left(replace(@s, ' ', ' '),1)+ ' '+replace(substring(@s,2,10), ' ', ' ')+ ' '+replace(substring(@s,11,len(@s)-10), ' ', ' ')
end
--结果
a 000125a 852