脱敏规则 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 --如果名称小于等于4个字,则脱敏 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 ('赵钱孙李');