CREATE FUNCTION LPAD1
                     (@I_STR  VARCHAR(200), @I_STR_LEN INT, @I_FILL_STR VARCHAR)
RETURNS VARCHAR(200)
AS
BEGIN
     DECLARE @R_STR VARCHAR(200),
             @T_DIFF_LEN INT,
             @T_STR_LEN INT,
             @O_STR_LEN INT,
             @POS INT

    SET @O_STR_LEN = LEN(@I_STR)
    SET @T_STR_LEN = 0
    SET @POS = 1

    WHILE @O_STR_LEN >= @POS
    BEGIN
        IF LEN(UNICODE(SUBSTRING(@I_STR,@POS,@POS+1))) > 3
        BEGIN
            SET @T_STR_LEN = @T_STR_LEN + 2
        END
        ELSE
        BEGIN
            SET @T_STR_LEN = @T_STR_LEN + 1       
        END
        SET @POS = @POS+1   
    END

 SET @T_DIFF_LEN = @I_STR_LEN -  @T_STR_LEN

 IF @T_DIFF_LEN >= 0 
  SET @R_STR = REPLICATE(@I_FILL_STR, @T_DIFF_LEN) + @I_STR
 ELSE
  SET @R_STR = @I_STR
     RETURN substring(@R_STR,1,@I_STR_LEN )

END

########################
CREATE FUNCTION RPAD1
                     (@I_STR  VARCHAR(200), @I_STR_LEN INT, @I_FILL_STR VARCHAR)
RETURNS VARCHAR(200)
AS
BEGIN
     DECLARE @R_STR VARCHAR(200),
             @T_DIFF_LEN INT,
             @T_STR_LEN INT,
             @O_STR_LEN INT,
             @POS INT

    SET @O_STR_LEN = LEN(@I_STR)
    SET @T_STR_LEN = 0
    SET @POS = 1

    WHILE @O_STR_LEN >= @POS
    BEGIN
        IF LEN(UNICODE(SUBSTRING(@I_STR,@POS,@POS+1))) > 3
        BEGIN
            SET @T_STR_LEN = @T_STR_LEN + 2
        END
        ELSE
        BEGIN
            SET @T_STR_LEN = @T_STR_LEN + 1       
        END
        SET @POS = @POS+1   
    END

 SET @T_DIFF_LEN = @I_STR_LEN -  @T_STR_LEN

 IF @T_DIFF_LEN >= 0 
  SET @R_STR = @I_STR + REPLICATE(@I_FILL_STR, @T_DIFF_LEN) 
 ELSE
  SET @R_STR = @I_STR
     RETURN substring(@R_STR,1,@I_STR_LEN )

END

 


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,