可用于数据巡查,需要导出脱敏数据进行查看等场景。
本文前半部分为脱敏例子,后半部分介绍了REPLACE()和SUBSTR()用法
查询效果如下(用excel导出也可以导出***):
查看语句可用于查询出脱敏数据,不更改数据值
更新语句可用于更新成脱敏数据,会更改数据值
-- 查看替换
select t.C_CUSTOMERNAME,
REPLACE(t.C_ADDRESS,SUBSTR(t.C_ADDRESS,3,6),'******') 地址,
from tcustomer_info t where t.c_address is not null
-- 更新替换
update tcustomer_info set C_ADDRESS= REPLACE(t.C_ADDRESS,SUBSTR(t.C_ADDRESS,3,6),'******') where t.c_address is not null
--插入替换
--将C_CUSTOMERNAME=李桂花的C_ADDRESS字段值改为脱敏数据
replace into tcustomer_info VALUES('李桂花','南******街88弄99单元999')
ps:针对插入替换,如果原表中没有’李桂花’这条数据就作为新数据插入(相当于insert into作用);如果原表中有’李桂花’这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。
REPLACE(参数1,参数2,参数3):
REPLACE(String,str1,str2) 即:将String中所有出现的str1替换为str2。
SUBSTR(参数1,参数2,参数3):
SBUSTR(str,pos):从pos开始的位置,一直截取到最后。
SUBSTR(str,pos,len): 就是从pos开始的位置,截取len个字符(空白也算字符)。
例:SUBSTR(t.C_ADDRESS,3,6)从3开始的位置,截取6个字符