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