我有代码来规范化 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'
关于sql - 如何使用 T-SQL 替换模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385649/