Create FUNCTION [dbo].[F_GetNumInStr] ( @s NVARCHAR(MAX) )
RETURNS MONEY
AS
BEGIN
DECLARE @s1 NVARCHAR(200)
SET @s1 = @s
DECLARE @strlen INT
SET @strlen = 0
DECLARE @minstr MONEY
DECLARE @minindex INT
DECLARE @minlen INT
DECLARE @cur MONEY
WHILE PATINDEX('%[^0-9.]%', @S1) > 0
BEGIN
SET @strlen = LEN(REPLACE(@s, '∷', '∷∷')) - LEN(@s)
SET @s = STUFF(@s, PATINDEX('%[^0-9.]%', @s1) + @strlen, 1,
'∷')
SET @s1 = STUFF(@s1, PATINDEX('%[^0-9.]%', @s1), 1, '')
END
SET @minstr = 0
SET @cur = 0
SET @minindex = 1
SET @minlen = dbo.Get_StrArrayLength(@s, '∷')
WHILE @minindex < @minlen + 1
BEGIN
SET @cur = dbo.F_GetStrArrayStrOfIndex(@s, '∷', @minindex)
IF ( @cur > 0 )
BEGIN
IF ( @minstr = 0 )
BEGIN
SET @minstr = @cur
END
IF ( @minstr > @cur )
BEGIN
SET @minstr = @cur
END
END
SET @minindex = @minindex + 1
END
RETURN @minstr
END