获取字符串开始的地址(案例)

在下面这篇《获取字符串结尾的电话号码(案例)https://www.cnblogs.com/insus/p/11064685.html中,仞仅中截取电话号码,如果想获取字符串开始的地址呢?

可以写另外一个函数:

 

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
Source Code

 

操作:

 

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
Source Code

 

posted @ 2019-06-21 15:50  Insus.NET  阅读(801)  评论(0编辑  收藏  举报