欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

获取字符串结尾的电话号码(案例)

程序员文章站 2023-01-01 12:14:00
在下面这篇《获取字符串结尾的电话号码(案例)》https://www.cnblogs.com/insus/p/11064685.html中,仞仅中截取电话号码,如果想获取字符串开始的地址呢? 可以写另外一个函数: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ......

在下面这篇《获取字符串结尾的电话号码(案例)》中,仞仅中截取电话号码,如果想获取字符串开始的地址呢?

可以写另外一个函数:

 

set ansi_nulls on
go
set quoted_identifier on
go

-- =============================================
-- author:      insus.net
-- blog:        https://insus.cnblogs.com
-- create date: 2019-06-21
-- update date: 2019-06-21
-- description: 获取字符串开始的地址
-- =============================================
create function [dbo].[svf_cutteraddress] 
(
    @source nvarchar(4000)
) returns nvarchar(4000)
as
begin
    declare @l int = len(rtrim(@source))    
    while @l > 0
    begin
        declare @cutstr char(1) = substring(@source,@l,1)
        if @cutstr like '%[^-0-9]%'         
            break;    
        set @l = @l - 1
    end
    return rtrim(ltrim(substring(@source,1,@l)))
end

 

操作:

 

create table #tempdata ([addr] nvarchar(max))

insert into #tempdata ([addr]) values(n'龙沙区卜奎南大街(交通管理处对过)   0452-2228858'),
(n'曲线小区6门市地下3,4号 18746016893'),
(n'南岗区曲线街76号  86420040'),
(n'南岗区理治街29号208 209   0451-82737507'),
(n'南岗区淮河路365-8号   0451-82384075'),
(n'香山路12-2号金源小区e栋1-5号层3号门市0451-55529958'),
(n'望奎县五街二十九委29幢289号0455-6711616'),
(n'软件园小区a-2栋8号5层501、502、503室0451-55652189'),
(n'北大营圣源小区1号楼4,5号门市 0467-5066001'),
(n'立新街三委(繁华大街325号)0455-4622932'),
(n'*大街95号    0451---56768888'),
(n'卫生路西侧兴华建材大市场3号楼a1b1-a5b5 0455-6499999')



select [addr], [dbo].[svf_cutteraddress]([addr]) as [地址]   from #tempdata