获取字符串开始的地址(案例)
在下面这篇《获取字符串结尾的电话号码(案例)》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
操作:
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
正文到此结束