UFN_MKTSEGMENTATIONFINDERNUMBER_BUILDRANGE

Returns a formatted finder number range.

Return

Return Type
nvarchar(50)

Parameters

Parameter Parameter Type Mode Description
@MIN bigint IN
@MAX bigint IN
@WIDTH int IN
@CHECKDIGIT bit IN

Definition

Copy


CREATE function dbo.[UFN_MKTSEGMENTATIONFINDERNUMBER_BUILDRANGE]
(
  @MIN bigint,
  @MAX bigint,
  @WIDTH int,
  @CHECKDIGIT  bit
)
returns nvarchar(50)
as
begin
  declare @RANGE nvarchar(50);
  declare @STRINGNUM nvarchar(25);
  declare @INDEX int;

  --build max side

  set @RANGE = '';
  set @STRINGNUM = right(replicate('0', @WIDTH) + cast(@MAX as nvarchar(25)), @WIDTH);
  set @INDEX = @WIDTH - 2;

  while @INDEX > -2
  begin  
    set @RANGE = SUBSTRING(@STRINGNUM,@INDEX, 3) + ' ' + @RANGE;
    set @INDEX -= 3;
  end

  --build middle

  if @CHECKDIGIT = 0
    set @RANGE = '- ' + @RANGE;
  else
    set @RANGE = '# - ' + @RANGE + ' #';

  --build min side

  set @STRINGNUM = right(replicate('0', @WIDTH) + cast(@MIN as nvarchar(25)), @WIDTH);
  set @INDEX = @WIDTH - 2;

  while @INDEX > -2
  begin  
    set @RANGE = SUBSTRING(@STRINGNUM,@INDEX, 3) + ' ' + @RANGE;
    set @INDEX -= 3;
  end

  return rtrim(@RANGE);  
end