You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对报表中ACC_NUM与NAME列实现指定规则的数据掩码?

账号与姓名数据掩码实现方案

需求回顾

  • ACC_NUM列:仅保留最后3位,其余替换为xxxxxxx
  • NAME列:每个单词保留前3位,剩余部分替换为XXXXX;单词长度不足3位时,保留原单词

完整SQL实现

SELECT
  CONCAT('xxxxxxx', RIGHT(ACC_NUM, 3)) AS MASK_ACC,
  REGEXP_REPLACE(NAME, '([A-Za-z]{3})([A-Za-z]+)', '\1XXXXX') AS MASK_NAME
FROM your_table_name;

逻辑说明

  1. ACC_NUM掩码:已通过CONCAT('xxxxxxx', RIGHT(ACC_NUM, 3))实现,截取账号最后3位并拼接固定前缀xxxxxxx。
  2. NAME掩码:使用REGEXP_REPLACE正则替换函数:
    • 正则表达式([A-Za-z]{3})([A-Za-z]+):匹配每个单词的前3个字母(第一个捕获组),以及后续的所有字母(第二个捕获组)
    • 替换规则\1XXXXX:保留前3个字母,将后续部分替换为XXXXX
    • 对于长度≤3的单词(如示例中的IS),正则无法匹配到后续字符,因此直接保留原单词,符合预期输出。

验证结果

执行上述SQL后,输出与预期一致:

MASK_ACCMASK_NAME
xxxxxxx111THIXXXXX
xxxxxxx522EVAXXXXX DIMXXXXX
xxxxxxx631THIXXXXX IS MYNXXXXX
xxxxxxx851RAUXXXXX HOLXXXXX
xxxxxxx999RAUXXXXX HOLXXXXX AGUXXXXX

内容的提问来源于stack exchange,提问作者H. D. U.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:57:32