如何使用 T-SQL 替换模式?

发布于 2024-10-06 13:39:53 字数 269 浏览 1 评论 0原文

我有规范化 POB 地址的代码。例如,其中包含的规范化之一是:

set @string = replace(@string, 'pobox', 'pob')

现在我想做类似的事情:我想找到任何直接跟在数字后面(中间没有空格)的 POB 并插入一个空格。我想找到类似于 POB[0-9] 的模式,然后将“POB”替换为“POB”。我怎样才能做到这一点?可以通过简单的替换来完成吗?或者我是否需要使用其他函数,例如 PATINDEX

I have code to normalize a POB address. For example, one of the normalizations included is:

set @string = replace(@string, 'pobox', 'pob')

Now I want to do something similar: I want to find any POB that is directly followed by a number (without a space in between) and insert a space. I want to find the pattern like POB[0-9] and then replace the "POB" with "POB ". How can I accomplish this? Can it be done with a simple replace? Or do I need to use some other function, like PATINDEX?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北渚 2024-10-13 13:39:53

是的,你是对的,你可以使用 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'

Yes you are correct you can use 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

Or probably a nicer way would be to use a case statement so that it can be easily incorporated in to a select statement

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'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文