当前位置:Gxlcms > 数据库问题 > 【SQLSERVER】如何找出字符串中的数字

【SQLSERVER】如何找出字符串中的数字

时间:2021-07-01 10:21:17 帮助过:8人阅读

方法一: 一个一个找出来*/ CREATE FUNCTION [dbo].[Fun_GetNumPart] ( @Str NVARCHAR(MAX) ) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @Start INT; DECLARE @End INT; DECLARE @Part NVARCHAR(MAX) SET @Start = PATINDEX(%[0-9]%, @Str); SET @End = PATINDEX(%[0-9]%,SUBSTRING(@Str, @Start+1,LEN(@Str) - @Start)); SET @Part = SUBSTRING(@Str,@Start,1) WHILE @End >0 BEGIN SET @Start = @start+@End SET @Part = @Part+SUBSTRING(@Str,@Start,1) SET @End = PATINDEX(%[0-9]%,SUBSTRING(@Str, @Start+1,LEN(@Str) - @Start)); END RETURN @Part; END;

 

2、通过正则逆向匹配,找到字符串中的非数字,一个一个去掉

/*方法二:一个一个去掉*/
CREATE FUNCTION [dbo].[Fun_GetNumPart]  
( @Str NVARCHAR(MAX) ) 
RETURNS NVARCHAR(MAX)   
AS   
BEGIN   
    WHILE PATINDEX(%[^0-9]%,@Str)>0   
    BEGIN   
        SET @Str=STUFF(@Str,PATINDEX(%[^0-9]%,@Str),1,‘‘) --删掉非数字的字符
    END   
    RETURN @Str 
END   

效果如下图:

技术分享

延伸:

可以通过将函数中的 ‘%[0-9]%‘ 替换成 ‘%[A-Z]%‘、‘%[吖-做]%‘,,改造成找字母、找中文的函数

 

【SQLSERVER】如何找出字符串中的数字

标签:img   create   --   匹配   延伸   效果   一个   varchar   tar   

人气教程排行