Back to OIM Explorer

dbo.QER_FGIExtendedAttributMatch

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 3.712 characters

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

SQL225 lines
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
SQL ยท Raw25 lines
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