dbo.QBM_FCVStringToFloat
Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB
Interpretation
- Database function. Usually supports views, validation, or calculated predicates; look at referenced-by entries for callers.
Relations
- No extracted relations.
Typed Edges
- No typed edges extracted for this source.
References
- No direct source references extracted.
Referenced By
Complete Source
1CREATE FUNCTION dbo.QBM_FCVStringToFloat(2 @InputValue nvarchar(256),3 @DefaultValue float4) RETURNS float5 WITH SCHEMABINDING6AS7BEGIN8 DECLARE @work nvarchar(256)9 DECLARE @ergFloat float = NULL10 DECLARE @work2 nvarchar(256)11 DECLARE @posi int12 DECLARE @in nvarchar(256) = replace(replace(trim(isnull(@InputValue, '')), N ',', N '.'),13 N ' ',14 N '')15 SELECT16 @ergFloat = TRY_CONVERT(float,17 @in)18 IF @ergFloat IS NOT NULL AND @in > ' '19 BEGIN20 GOTO endLabel21 END22 SELECT @work = @in23 SELECT @work2 = N ''24 IF25 LEFT(@work,26 1) IN(N '-',27 N '+')28 BEGIN29 SELECT @work2 =30 LEFT(@work,31 1)32 SELECT33 @work = substring(@work,34 2,35 255)36 END37 SELECT @posi = 138 WHILE @posi <= len(@work) AND substring(@work,39 @posi,40 1) IN(N '0',41 N '1',42 N '2',43 N '3',44 N '4',45 N '5',46 N '6',47 N '7',48 N '8',49 N '9',50 N '.')51 BEGIN52 SELECT53 @work2 = CONCAT(@work2,54 substring(@work, @posi, 1))55 SELECT @posi += 156 END57 IF substring(@work,58 @posi,59 1) IN(N 'E')60 BEGIN61 SELECT62 @work2 = CONCAT(@work2,63 substring(@work, @posi, 1))64 SELECT @posi += 165 END66 ELSE67 BEGIN68 GOTO ExponentReady69 END70 IF substring(@work,71 @posi,72 1) IN(N '-',73 N '+')74 BEGIN75 SELECT76 @work2 = CONCAT(@work2,77 substring(@work, @posi, 1))78 SELECT @posi += 179 END80 WHILE @posi <= len(@work) AND substring(@work,81 @posi,82 1) IN(N '0',83 N '1',84 N '2',85 N '3',86 N '4',87 N '5',88 N '6',89 N '7',90 N '8',91 N '9')92 BEGIN93 SELECT94 @work2 = CONCAT(@work2,95 substring(@work, @posi, 1))96 SELECT @posi += 197 END98 ExponentReady:99 IF @work2 = N ''100 BEGIN101 SELECT @ergfloat = @defaultvalue102 GOTO endLabel103 END104 SELECT105 @ergFloat = try_convert(float,106 @work2)107 IF @ergFloat IS NULL108 BEGIN109 SELECT @ergfloat = @defaultvalue110 END111 endLabel:112 RETURN(@ergFloat)113END
Open raw exported source
1 create function dbo.QBM_FCVStringToFloat (@InputValue nvarchar(256) , @DefaultValue float ) returns float with SCHEMABINDING as begin declare2 @work nvarchar(256) declare @ergFloat float = null declare @work2 nvarchar(256) declare @posi int declare @in nvarchar(256) = replace(replace(trim(isnull3(@InputValue, '')) , N',', N'.') , N' ', N'') select @ergFloat = TRY_CONVERT(float, @in) if @ergFloat is not null and @in > ' ' begin goto endLabel end4 select @work = @in select @work2 = N'' if left(@work,1) in (N'-', N'+') begin select @work2 = left(@work,1) select @work = substring( @work, 2,255) 5end select @posi = 1 while @posi <= len(@work) and substring(@work, @posi, 1) in (N'0', N'1', N'2', N'3', N'4', N'5', N'6', N'7', N'8', N'9', N'.') begin6 select @work2 = concat(@work2 , substring(@work, @posi, 1)) select @posi += 1 end if substring(@work, @posi, 1) in (N'E') begin select @work2 = concat7(@work2 , substring(@work, @posi, 1)) select @posi += 1 end else begin goto ExponentReady end if substring(@work, @posi, 1) in (N'-', N'+') begin select8 @work2 = concat(@work2 , substring(@work, @posi, 1)) select @posi += 1 end while @posi <= len(@work) and substring(@work, @posi, 1) in (N'0', N'1', N'2'9, N'3', N'4', N'5', N'6', N'7', N'8', N'9') begin select @work2 = concat(@work2 , substring(@work, @posi, 1)) select @posi += 1 end ExponentReady: if @work210 = N'' begin select @ergfloat = @defaultvalue goto endLabel end select @ergFloat = try_convert(float, @work2) if @ergFloat is null begin select @ergfloat11 = @defaultvalue end endLabel: return(@ergFloat) end 12