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

如何编写SQL实现新旧账户值仅留后4位其余用*掩码?

实现字段掩码(仅保留最后4位)的SQL查询

针对你提供的表结构,要将pre_val和New_val字段做掩码处理——仅保留最后4位数字,其余部分用*替代,以下是主流数据库的具体实现方式:

MySQL/MariaDB

通过RIGHT提取末尾4位,再用LPAD填充*到原字段长度:

SELECT 
    ACC_NO,
    LPAD(RIGHT(pre_val, 4), LENGTH(pre_val), '*') AS masked_pre_val,
    LPAD(RIGHT(New_val, 4), LENGTH(New_val), '*') AS masked_New_val
FROM 
    your_table_name;

SQL Server

用REPLICATE生成对应数量的*,再拼接提取出的末尾4位:

SELECT 
    ACC_NO,
    REPLICATE('*', LEN(pre_val) - 4) + RIGHT(pre_val, 4) AS masked_pre_val,
    REPLICATE('*', LEN(New_val) - 4) + RIGHT(New_val, 4) AS masked_New_val
FROM 
    your_table_name;

PostgreSQL

数值类型字段需先转为文本类型,再用RIGHT和LPAD组合处理:

SELECT 
    ACC_NO,
    LPAD(RIGHT(pre_val::TEXT, 4), LENGTH(pre_val::TEXT), '*') AS masked_pre_val,
    LPAD(RIGHT(New_val::TEXT, 4), LENGTH(New_val::TEXT), '*') AS masked_New_val
FROM 
    your_table_name;

注意事项

  • 替换语句中的your_table_name为你实际使用的表名
  • 如果字段值长度不足4位,上述语句会直接返回原字段值;若需要强制补*到固定长度,可自行调整填充逻辑

内容的提问来源于stack exchange,提问作者Zehra Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:55:24