脱敏规则
- 1个字符,不脱敏;
- 2个字符,后一个字符脱敏;
- 3个字符,中间一个字符脱敏;
- 4个字符,中间两个字符脱敏;
- 超过4个字符,认为是政企客户,不做脱敏处理;
postgresql函数实现
CREATE OR REPLACE FUNCTION f_59791_tm(str character varying)
RETURNS character varying
LANGUAGE plpgsql
AS $function$
declare
num numeric := length($1);
p_str varchar(500);
begin
if num <= 4 and num > 1 then
p_str := substr(str,1,1)||decode(cast(num as varchar(10)),'4','**','*')||substr(str,3,1);
else
p_str := $1;
end if;
return p_str;
end;
$function$
;
select f_59791_tm ('赵');
select f_59791_tm ('赵钱');
select f_59791_tm ('赵钱孙');
select f_59791_tm ('赵钱孙李');