Method1:
Declare @ Tempstr Varchar ( 100 )
Declare @ Tempret Varchar ( 20 )
Select @ Tempstr = ' 0102017010101162873.4 Deng Xiangjiang 56.5064.9512 '
Select @ Tempret = Replace ( Replace ( Replace ( Replace ( Replace ( Replace ( Replace ( Replace ( Replace ( Replace ( Replace ( @ Tempstr , ' 0 ' , '' ), ' 1 ' , '' ), ' 2 ' , '' ), ' 3 ' , '' ), ' 4 ' , '' ), ' 5 ' , '' ), ' 6 ' , '' ), ' 7 ' , '' ), ' 8 ' , '' ), ' 9 ' , '' ), ' . ' , '' )
Print @ Tempret
Method2:
Print DBO. regexreplace ( ' 0102017010101162873.4 Deng Xiangjiang 56.5064.9512 ' , ' [0-9.] ' , '' , 1 , 1 )
Create Function DBO. regexreplace
(
@ Source Varchar ( 5000 ), -- Original string
@ Regexp Varchar ( 1000 ), -- Regular Expression
@ Replace Varchar ( 1000 ), -- Replacement value
@ Globalreplace Bit = 0 , -- Whether it is a global replacement
@ Ignorecase Bit = 0 -- Ignore size?
)
Returns Varchar ( 1000 ) As
Begin
Declare @ HR Integer
Declare @ Objregexp Integer
Declare @ Result Varchar ( 5000 )
Exec @ HR = Sp_oacreate ' VBScript. Regexp ' , @ Objregexp Output
If @ HR <> 0 Begin
Exec @ HR = Sp_oadestroy @ Objregexp
Return Null
End
Exec @ HR = Sp_oasetproperty @ Objregexp , ' Pattern ' , @ Regexp
If @ HR <> 0 Begin
Exec @ HR = Sp_oadestroy @ Objregexp
Return Null
End
Exec @ HR = Sp_oasetproperty @ Objregexp , ' Global ' , @ Globalreplace
If @ HR <> 0 Begin
Exec @ HR = Sp_oadestroy @ Objregexp
Return Null
End
Exec @ HR = Sp_oasetproperty @ Objregexp , ' Ignorecase ' , @ Ignorecase
If @ HR <> 0 Begin
Exec @ HR = Sp_oadestroy @ Objregexp
Return Null
End
Exec @ HR = Sp_oamethod @ Objregexp , ' Replace ' , @ Result Output, @ Source , @ Replace
If @ HR <> 0 Begin
Exec @ HR = Sp_oadestroy @ Objregexp
Return Null
End
Exec @ HR = Sp_oadestroy @ Objregexp
If @ HR <> 0 Begin
Return Null
End
Return @ Result
End
Go