我有规范化 POB 地址的代码。例如,其中包含的标准化之一是:
set @string = replace(@string, 'pobox', 'pob')
现在我想做类似的事情:我想找到任何直接跟在数字后面(中间没有空格)的 POB 并插入一个空格。我想找到模式like POB[0-9]
然后将“POB”替换为“POB”。我怎样才能做到这一点?可以通过简单的替换来完成吗?或者我需要使用其他功能,例如PATINDEX
?
是的,你是对的,你可以使用PATINDEX
Declare @searchstring varchar(50)
Set @searchstring = 'POB9090'
If (PatIndex('POB[0-9]%', @searchString) > 0)
Begin
Set @searchstring = Replace(@searchString, 'POB', 'POB ')
End
Select @searchString
或者可能更好的方法是使用case
声明,以便可以轻松地将其合并到select
陈述
Declare @searchstring varchar(50)
Set @searchstring = 'POB9090'
Select Case
When PatIndex('POB[0-9]%', @searchString) > 0 Then Replace(@searchString, 'POB', 'POB ')
Else @searchString
End 'SearchString'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)