在SQL中取出字符串中数字部分或在SQL中取出字符部分

一包含数字的字符串,需要取出中间的数字部分进行排序

 

/****** Object:  UserDefinedFunction [dbo].[F_Get_No]    Script Date: 10/18/2013 22:03:13 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO





create  function [dbo].[F_Get_No] 

( 

@No varchar(100) 

) 

RETURNS bigint 

AS 

BEGIN 

WHILE PATINDEX('%[^0-9]%',@No)>0 

BEGIN 

SET @No=STUFF(@No,PATINDEX('%[^0-9]%',@No),1,'') --删掉一个非数字的字符,循环结束,剩余的为数字部分

END 

RETURN CONVERT(bigint,@No) 

END

 

只取出字串中的字符部分

 

 

create  function [dbo].[F_GetChar]



(



@No varchar(100)



)



RETURNS varchar(100)



AS



BEGIN



WHILE PATINDEX('%[^A-Za-z]%',@No)>0



BEGIN



SET @No=STUFF(@No,PATINDEX('%[^A-Za-z]%',@No),1,'') --删掉一个非数字的字符,循环结束,剩余的为数字部分



END



RETURN CONVERT(varchar(100),@No)



END



 



--select dbo.F_GetChar('wwww23')

 

 

 

 

你可能感兴趣的:(sql)