dbo.QBM_FCVStringToBigInt
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.
Complete Source
1CREATE FUNCTION dbo.QBM_FCVStringToBigInt(2 @InputValue nvarchar(256),3 @defaultvalue bigint4) RETURNS bigint5 WITH SCHEMABINDING6AS7BEGIN8 DECLARE @work nvarchar(256)9 DECLARE @ergNum numeric(38,10 1)11 DECLARE @erg bigint12 DECLARE @work2 nvarchar(256)13 DECLARE @in nvarchar(256) = replace(replace(trim(isnull(@InputValue, '')), N ',', N '.'),14 N ' ',15 N '')16 SELECT17 @erg = TRY_CONVERT(bigint,18 @in)19 IF @erg IS NOT NULL AND @in > ' '20 BEGIN21 RETURN(@erg)22 END23 SELECT @work = @in24 SELECT @work2 = N ''25 IF26 LEFT(@work,27 1) = N '-'28 BEGIN29 SELECT @work2 = N '-'30 SELECT31 @work = substring(@work,32 2,33 255)34 END35 SELECT36 @work2 += substring(@work,37 1,38 len(@work) - len(ltrim(translate(@work, '1234567890.', ' '))))39 IF @work2 = N ''40 BEGIN41 SELECT @erg = @defaultvalue42 RETURN(@erg)43 END44 SELECT45 @ergNum = convert(numeric(38, 1),46 @work2)47 SELECT48 @erg = convert(bigint,49 round(@ergNum, 0)) endLabel:50 RETURN(@erg)51END
Open raw exported source
1 create function dbo.QBM_FCVStringToBigInt (@InputValue nvarchar(256) , @defaultvalue bigint ) returns bigint with SCHEMABINDING as begin declare2 @work nvarchar(256) declare @ergNum numeric(38,1) declare @erg bigint declare @work2 nvarchar(256) declare @in nvarchar(256) = replace(replace(trim(isnull3(@InputValue, '')) , N',', N'.') , N' ', N'') select @erg = TRY_CONVERT(bigint, @in) if @erg is not null and @in > ' ' begin return(@erg) end select 4@work = @in select @work2 = N'' if left(@work,1) = N'-' begin select @work2 = N'-' select @work = substring( @work, 2,255) end select @work2 +=5 substring(@work, 1, len(@work)- len(ltrim(translate (@work, '1234567890.', ' ')))) if @work2 = N'' begin select @erg = @defaultvalue return6(@erg) end select @ergNum = convert(numeric(38,1), @work2) select @erg = convert(bigint, round(@ergNum,0)) endLabel: return(@erg) end 7