日期:2014-05-18  浏览次数:20579 次

字符串处理问题
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