DBMS/MS-SQL

[MS-SQL] TEL 전화번호 MASKING 마스킹

랑스티비 2020. 4. 16. 18:07

▶[MS-SQL] TEL 전화번호 MASKING 마스킹 

 

-- 함수생성
CREATE FUNCTION [dbo].[FN_MASK_TELNO](@STR VARCHAR(50))
RETURNS VARCHAR(50)
AS
     BEGIN
         DECLARE @RTNVALUE VARCHAR(50), @STRLEN INT, @POS INT, @VSTR VARCHAR(50);
         SET @VSTR = REPLACE(REPLACE(@STR, ' ', ''), '-', '');
         SET @STRLEN = LEN(@VSTR);
         IF @STRLEN < 7
             BEGIN
                 SET @RTNVALUE = @VSTR;
         END;
             ELSE
             IF @STRLEN = 7
                 BEGIN
                     SET @RTNVALUE = '***-' + RIGHT(@VSTR, 4);
             END;
                 ELSE
                 IF @STRLEN = 8
                     BEGIN
                         SET @RTNVALUE = '****-' + RIGHT(@VSTR, 4);
                 END;
                     ELSE
                     IF @STRLEN = 9
                         BEGIN
                             SET @RTNVALUE = '02-****-' + RIGHT(@VSTR, 4);
                     END;
                         ELSE
                         IF @STRLEN = 10
                             BEGIN
                                 IF LEFT(@VSTR, 2) = '02'
                                     BEGIN
                                         SET @RTNVALUE = LEFT(@VSTR, 2) + '-****-' + RIGHT(@VSTR, 4);
                                 END;
                                     ELSE
                                     BEGIN
                                         SET @RTNVALUE = LEFT(@VSTR, 3) + '-***-' + RIGHT(@VSTR, 4);
                                 END;
                         END;
                             ELSE
                             IF @STRLEN = 11
                                 BEGIN
                                     SET @RTNVALUE = LEFT(@VSTR, 3) + '-****-' + RIGHT(@VSTR, 4);
                             END;
         RETURN @RTNVALUE;
     END;



-- 함수 결과
select DBO.FN_MASK_TELNO('010-1234-5678')  -- 010-****-5678