dbo.QER_FGIExtendedAttributMatch
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
- No direct source references extracted.
Complete Source
1CREATE FUNCTION dbo.QER_FGIExtendedAttributMatch(2 @Search nvarchar(64),3 @LowerLimit nvarchar(64),4 @UpperLimit nvarchar(64)5) RETURNS int6 WITH SCHEMABINDING7AS8BEGIN9 DECLARE @erg int10 SELECT @erg = 011 DECLARE @SearchWildCard BIT12 SELECT @SearchWildCard = 013 DECLARE @LowerLimitWildCard BIT14 SELECT @LowerLimitWildCard = 015 DECLARE @UpperLimitWildCard BIT16 SELECT @UpperLimitWildCard = 017 DECLARE @MinCmp int18 DECLARE @CmpSearch nvarchar(64)19 DECLARE @CmpLowerLimit nvarchar(64)20 DECLARE @CmpUpperLimit nvarchar(64)21 DECLARE @LenSearch int22 DECLARE @LenUpperLimit int23 DECLARE @LenLowerLimit int24 IF isnull(@search,25 N '') LIKE N '%*'26 BEGIN27 SELECT @SearchWildCard = 128 SELECT @CmpSearch =29 LEFT(@search,30 len(@search) -1)31 END32 ELSE33 BEGIN34 SELECT35 @CmpSearch = isnull(@Search,36 N '')37 END38 SELECT @LenSearch = len(@CmpSearch)39 IF @Search = N '*'40 BEGIN41 SELECT @erg = 142 RETURN(@erg)43 END44 IF isnull(@Search,45 N '') = ''46 BEGIN47 RETURN(@erg)48 END49 IF isnull(@LowerLimit,50 N '') LIKE N '%*'51 BEGIN52 SELECT @LowerLimitWildCard = 153 SELECT @CmpLowerLimit =54 LEFT(@LowerLimit,55 len(@LowerLimit) -1)56 END57 ELSE58 BEGIN59 SELECT60 @CmpLowerLimit = isnull(@LowerLimit,61 N '')62 END63 SELECT @LenLowerLimit = len(@CmpLowerLimit)64 IF isnull(@UpperLimit,65 N '') LIKE N '%*'66 BEGIN67 SELECT @UpperLimitWildCard = 168 SELECT @CmpUpperLimit =69 LEFT(@UpperLimit,70 len(@UpperLimit) -1)71 END72 ELSE73 BEGIN74 SELECT75 @CmpUpperLimit = isnull(@UpperLimit,76 N '')77 END78 SELECT @LenUpperLimit = len(@CmpUpperLimit)79 IF @lenUpperLimit > 0 AND @LenLowerLimit = 0 OR @LowerLimitWildCard = 0 AND @UpperLimitWildCard = 1 OR(@LenUpperLimit > 0 AND(@LowerLimitWildCard80 = 1 AND @UpperLimitWildCard = 1 AND @LenUpperLimit <> @LenLowerLimit OR @LowerLimitWildCard = 0 AND @UpperLimitWildCard = 0 AND @LenUpperLimit81 <> @LenLowerLimit OR @LowerLimitWildCard = 1 AND @UpperLimitWildCard = 0 AND @LenUpperLimit < @LenLowerLimit)) OR @LowerLimit LIKE N '%*_%' OR82 @UpperLimit LIKE N '%*_%' OR @Search LIKE N '%*_%'83 BEGIN84 RETURN(@erg)85 END86 IF @LowerLimitWildCard = 087 BEGIN88 IF @LenSearch > @LenLowerLimit89 BEGIN90 RETURN(@erg)91 END92 SELECT @MinCmp = @LenLowerLimit93 END94 ELSE95 BEGIN96 SELECT @mincmp = @LenSearch97 IF @LenLowerLimit < @mincmp98 BEGIN99 SELECT @MinCmp = @LenLowerLimit100 END101 END102 IF @SearchWildCard = 0103 BEGIN104 IF @LowerLimitWildCard = 0105 BEGIN106 IF @lenSearch > @LenLowerLimit107 BEGIN108 RETURN(@erg)109 END110 IF @LenUpperLimit = 0111 BEGIN112 IF @CmpSearch = @CmpLowerLimit113 BEGIN114 SELECT @erg = 1115 END116 RETURN(@erg)117 END118 IF @CmpLowerLimit <= @CmpSearch AND @CmpSearch <= @CmpUpperLimit119 BEGIN120 SELECT @erg = 1121 END122 END123 ELSE124 BEGIN125 IF @lenUpperLimit = 0126 BEGIN127 IF @CmpLowerLimit =128 LEFT(@CmpSearch,129 @LenLowerLimit)130 BEGIN131 SELECT @erg = 1132 END133 END134 ELSE135 BEGIN136 IF @UpperLimitWildCard = 1137 BEGIN138 IF139 LEFT(@CmpSearch,140 @LenUpperLimit) <= @CmpUpperLimit141 BEGIN142 SELECT @Erg = 1143 END144 END145 ELSE146 BEGIN147 IF @cmpSearch <= @CmpUpperLimit148 BEGIN149 SELECT @erg = 1150 END151 END152 END153 END154 END155 ELSE156 BEGIN157 IF @LowerLimitWildCard = 0158 BEGIN159 IF @LenUpperLimit = 0160 BEGIN161 IF @CmpSearch =162 LEFT(@CmpLowerLimit,163 @LenSearch)164 BEGIN165 SELECT @erg = 1166 RETURN(@erg)167 END168 END169 IF170 LEFT(@CmpLowerLimit,171 @LenSearch) <= @CmpSearch AND @CmpSearch <=172 LEFT(@CmpUpperLimit,173 @LenSearch)174 BEGIN175 SELECT @erg = 1176 END177 END178 ELSE179 BEGIN180 IF @lenUpperLimit = 0181 BEGIN182 IF183 LEFT(@CmpLowerLimit,184 @mincmp) =185 LEFT(@cmpSearch,186 @mincmp)187 BEGIN188 SELECT @erg = 1189 END190 END191 ELSE192 BEGIN193 IF194 LEFT(@CmpLowerLimit,195 @mincmp) <=196 LEFT(@cmpSearch,197 @mincmp)198 BEGIN199 IF @UpperLimitWildCard = 1200 BEGIN201 IF202 LEFT(@cmpSearch,203 @mincmp) <=204 LEFT(@CmpUpperLimit,205 @mincmp)206 BEGIN207 SELECT @erg = 1208 END209 END210 ELSE211 BEGIN212 IF @cmpSearch <=213 LEFT(@CmpUpperLimit,214 @LenSearch)215 BEGIN216 SELECT @erg = 1217 END218 END219 END220 END221 END222 END223 endLabel:224 RETURN(@erg)225END
Open raw exported source
1 create function dbo.QER_FGIExtendedAttributMatch (@Search nvarchar(64), @LowerLimit nvarchar(64), 2@UpperLimit nvarchar(64) ) returns int with SCHEMABINDING as begin declare @erg int select @erg = 0 declare @SearchWildCard bit select @SearchWildCard3 = 0 declare @LowerLimitWildCard bit select @LowerLimitWildCard = 0 declare @UpperLimitWildCard bit select @UpperLimitWildCard = 0 declare @MinCmp int4 declare @CmpSearch nvarchar(64) declare @CmpLowerLimit nvarchar(64) declare @CmpUpperLimit nvarchar(64) declare @LenSearch int declare @LenUpperLimit5 int declare @LenLowerLimit int if isnull(@search , N'') like N'%*' begin select @SearchWildCard = 1 select @CmpSearch = left(@search, len(@search) -1 6) end else begin select @CmpSearch = isnull(@Search, N'') end select @LenSearch = len(@CmpSearch) if @Search = N'*' begin select @erg = 1 return(@erg)7 end if isnull(@Search,N'') = '' begin return(@erg) end if isnull(@LowerLimit , N'') like N'%*' begin select @LowerLimitWildCard = 1 select @CmpLowerLimit8 = left(@LowerLimit, len(@LowerLimit) -1 ) end else begin select @CmpLowerLimit = isnull(@LowerLimit, N'') end select @LenLowerLimit = len(@CmpLowerLimit9) if isnull(@UpperLimit , N'') like N'%*' begin select @UpperLimitWildCard = 1 select @CmpUpperLimit = left(@UpperLimit, len(@UpperLimit) -1 ) end else10 begin select @CmpUpperLimit = isnull(@UpperLimit, N'') end select @LenUpperLimit = len(@CmpUpperLimit) if @lenUpperLimit > 0 and @LenLowerLimit = 0 11 or @LowerLimitWildCard = 0 and @UpperLimitWildCard = 1 or ( @LenUpperLimit > 0 and ( @LowerLimitWildCard = 1 and @UpperLimitWildCard = 1 and @LenUpperLimit12 <> @LenLowerLimit or @LowerLimitWildCard = 0 and @UpperLimitWildCard = 0 and @LenUpperLimit <> @LenLowerLimit or @LowerLimitWildCard = 1 and @UpperLimitWildCard13 = 0 and @LenUpperLimit < @LenLowerLimit ) ) or @LowerLimit like N'%*_%' or @UpperLimit like N'%*_%' or @Search like N'%*_%' begin return(@erg) end14 if @LowerLimitWildCard = 0 begin if @LenSearch > @LenLowerLimit begin return(@erg) end select @MinCmp = @LenLowerLimit end else begin select @mincmp15 = @LenSearch if @LenLowerLimit < @mincmp begin select @MinCmp = @LenLowerLimit end end if @SearchWildCard = 0 begin if @LowerLimitWildCard = 0 begin 16 if @lenSearch > @LenLowerLimit begin return(@erg) end if @LenUpperLimit = 0 begin if @CmpSearch = @CmpLowerLimit begin select @erg = 1 end return(@erg17) end if @CmpLowerLimit <= @CmpSearch and @CmpSearch <= @CmpUpperLimit begin select @erg = 1 end end else begin if @lenUpperLimit = 0 begin if @CmpLowerLimit18 = left(@CmpSearch, @LenLowerLimit) begin select @erg = 1 end end else begin if @UpperLimitWildCard = 1 begin if left(@CmpSearch, @LenUpperLimit) <= @CmpUpperLimit19 begin select @Erg = 1 end end else begin if @cmpSearch <= @CmpUpperLimit begin select @erg = 1 end end end end end else begin if @LowerLimitWildCard20 = 0 begin if @LenUpperLimit = 0 begin if @CmpSearch = left(@CmpLowerLimit, @LenSearch) begin select @erg = 1 return(@erg) end end if left(@CmpLowerLimit21, @LenSearch) <= @CmpSearch and @CmpSearch <= left(@CmpUpperLimit, @LenSearch) begin select @erg = 1 end end else begin if @lenUpperLimit = 0 begin 22if left(@CmpLowerLimit, @mincmp) = left(@cmpSearch, @mincmp) begin select @erg = 1 end end else begin if left(@CmpLowerLimit, @mincmp) <= left(@cmpSearch23, @mincmp) begin if @UpperLimitWildCard = 1 begin if left(@cmpSearch, @mincmp) <= left(@CmpUpperLimit, @mincmp) begin select @erg = 1 end end else begin24 if @cmpSearch <= left(@CmpUpperLimit, @LenSearch) begin select @erg = 1 end end end end end end endLabel: return(@erg) end 25