SQL对某个字段脱敏,按照A-Z字母序排列

本文介绍了SQLserver中常见的三种数据脱敏方法,包括身份证出生年月日的脱敏、姓名的字母序脱敏以及复杂情况下的字母扩展脱敏策略。这些方法有助于保护敏感信息,确保数据安全。

由于一部分信息比较敏感,需要脱敏展示,通常脱敏是替换成‘*’ ,有一些比较复杂的脱敏方式

就需要进行一些处理,以下展示3种常见的脱敏场景。以sqlserver为例。

1.将身份证出生年月日脱敏

select concat(left(IdCardNo,6),'********',right(IdCardNo,4)) from [tablename]

2.将姓名按照A-Z字母序脱敏

select concat('姓名',(SELECT Char(65 + (Number - 1) % 26))) from [tablename]

3.如果数据超过了A-Z 26个字母,需要追加AA-AZ

select  concat('姓名',Coalesce((SELECT Char(65 + (t.Number - 475255) / 456976 % 26) WHERE t.Number >= 475255), '')
      + Coalesce((SELECT Char(65 + (t.Number - 18279) / 17576 % 26) WHERE t.Number >= 18279), '')
      + Coalesce((SELECT Char(65 + (t.Number - 703) / 676 % 26) WHERE t.Number >= 703), '')
      + Coalesce((SELECT Char(65 + (t.Number - 27) / 26 % 26) WHERE t.Number >= 27), '')
      + (SELECT Char(65 + (t.Number - 1) % 26))
    )
    from  [tablename] t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值