字符出现的第一个位置(比较麻烦的一种)
#7532Assisted Living
#0005622Assisted Living
#7340Assisted Living
#10399Assisted Living
#5263Assisted Living
#5819Assisted Living
以上是一些记录信息,我想在数字与字符之间加一个空格,但是这些字符出现的位置不是很固定,我如何得到字符出现的位置呢,还有如何在字符和数字之间添加一个空格呢
------解决方案--------------------使用函数:charindex()/patindex()
------解决方案--------------------declare @test table (test varchar(100))
insert @test
select '#7532Assist1ed Living ' union all
select '#0005622Ass2isted Living ' union all
select '#7340Assist3ed Living ' union all
select '#10399Assis4ted Living ' union all
select '#5263Assist5ed Living ' union all
select '#5819Assist6ed Living '
while exists (select 1 from @test where patindex( '%[0-9][A-Z]% ', test) > 0)
begin
update @test set test = stuff(test,patindex( '%[0-9][A-Z]% ', test)+1,0, ' ') where patindex( '%[0-9][A-Z]% ', test) > 0
end
while exists (select 1 from @test where patindex( '%[A-Z][0-9]% ', test) > 0)
begin
update @test set test = stuff(test,patindex( '%[A-Z][0-9]% ', test)+1,0, ' ') where patindex( '%[A-Z][0-9]% ', test) > 0
end
select * from @Test
/*
#7532 Assist 1 ed Living
#0005622 Ass 2 isted Living
#7340 Assist 3 ed Living
#10399 Assis 4 ted Living
#5263 Assist 5 ed Living
#5819 Assist 6 ed Living
*/