Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
CREATE FUNCTION dbo.PadLEx(@CharExp VARCHAR(255), @NumberOfSegments TINYINT , @FinalLengthOfSegment TINYINT, @Delimiter CHAR(1), @PadChar CHAR(1))
RETURNS VARCHAR(255)
AS
BEGIN
-- @NumberOfSegments is the number of segment you wish to pad. The function will allow you to pad only 3 segments of 4 segments info
-- For example SELECT dbo.PadLEx('1.2.3.4', 3, 2, '.', '0') ==> 01.02.03.4 (We may need it)
-- @FinalLengthOfSegment, how many char you want each segment to have
DECLARE @Result VARCHAR(255)
SET @Result = ''
IF @NumberOfSegments = 0
-- Don't work on the rest of these segments
BEGIN
RETURN @CharExp
END
IF @CharExp IS NULL OR RTRIM(LTRIM(@CharExp)) = ''
BEGIN
RETURN REPLICATE(@PadChar, @FinalLengthOfSegment)
END
ELSE
BEGIN
IF CHARINDEX(@Delimiter , @CharExp) = 0
BEGIN
SET @Result = REPLICATE(@PadChar, @FinalLengthOfSegment - DATALENGTH(@CharExp)) + @CharExp
RETURN @Result
END
ELSE
BEGIN
DECLARE @nStartPosition TINYINT , @EndPosition TINYINT , @TempExp VARCHAR(10)
SET @Result = ''
SET @nStartPosition = 1
SET @EndPosition = CHARINDEX(@Delimiter , @CharExp)
SET @TempExp = SUBSTRING(@CharExp, @nStartPosition, @EndPosition)
SET @Result = @Result + REPLICATE(@PadChar, @FinalLengthOfSegment - (DATALENGTH(@TempExp) - 1)) + @TempExp
-- Recursive call
SET @Result = @Result + dbo.PadLEx(SUBSTRING(@CharExp, @EndPosition + 1,
CASE WHEN DATALENGTH(@CharExp) - @EndPosition <= 0 THEN 0 ELSE DATALENGTH(@CharExp) - @EndPosition END) ,
@NumberOfSegments -1 , @FinalLengthOfSegment , @Delimiter , @PadChar)
END
END
RETURN @Result
END -- End Of Function