一个从字符串中提取数字的函数:

1
2
3
4
5
6
7
8
9
10
CREATE FUNCTION [dbo].[GET_NUMBER](@S VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^0-9-.]%',@S) > 0
BEGIN
SET @S = STUFF(@S, PATINDEX('%[^0-9-.]%', @S), 1, '')
END
RETURN @S
END

用例:

1
2
3
SELECT dbo.GET_NUMBER('1q2W399E4987r')

-- 得到结果: 123994987

留言

2017-12-29