獲取字符串結尾的電話號碼(案例)

問題來自:
html

 

如下是Insus.NET的解決方法,僅是截取字符串結尾的電話號碼便可,寫一個簡的自定義函數:ide

 

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_CutterPhone] 
(
    @source NVARCHAR(4000)
) RETURNS NVARCHAR(4000)
AS
BEGIN
    DECLARE @L INT = LEN(RTRIM(@source))
    DECLARE @phone NVARCHAR(4000) = N''
    WHILE @L > 0
    BEGIN
        DECLARE @cutstr CHAR(1) = SUBSTRING(@source,@L,1)
        IF @cutstr LIKE '%[^-0-9]%'         
            BREAK;        
        ELSE        
            SET @phone = @cutstr + @phone    
        SET @L = @L - 1
    END
    RETURN @phone
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層50一、50二、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_CutterPhone]([Addr]) AS [phone] FROM #tempData
Source Code

 

補充,獲取地址,能夠參考下面這篇《獲取字符串開始的地址(案例)http://www.javashuo.com/article/p-msdrkbku-bw.htmlpost

相關文章
相關標籤/搜索