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

如何在SQL Server中对姓名列除首字母外替换为*

SQL Server 姓名掩码实现方案

直接给你修改后的SQL代码,可实现将姓名除首字母外的所有字符替换为*的需求:

SELECT 
    [Personal info],
    -- 处理名:首字母 + 对应长度的*
    SUBSTRING([Primary Contact], 1, 1) + 
    REPLICATE('*', LEN(SUBSTRING([Primary Contact], 1, CHARINDEX(' ', [Primary Contact]) - 1)) - 1) +
    ' ' +
    -- 处理姓:首字母 + 对应长度的*
    SUBSTRING([Primary Contact], CHARINDEX(' ', [Primary Contact]) + 1, 1) +
    REPLICATE('*', LEN(SUBSTRING([Primary Contact], CHARINDEX(' ', [Primary Contact]) + 1, LEN([Primary Contact]))) - 1) AS CI
FROM 
    xx

代码说明

  1. 拆分姓名:通过CHARINDEX(' ', [Primary Contact])定位姓名中间的空格,将姓名拆成名、姓两部分
  2. 生成掩码:用REPLICATE('*', 长度-1)生成与剩余字符数匹配的*,比如名是John(长度4),就生成3个*
  3. 拼接结果:将首字母和掩码拼接,再用空格连接姓的首字母与掩码

效果验证

  • 输入John Snow → 输出J*** S***
  • 输入Jonathan Conan → 输出J******* C****

如果姓名存在首尾空格,可在处理前添加LTRIM(RTRIM([Primary Contact]))清理空格,避免计算错误。

内容的提问来源于stack exchange,提问作者Javid Hesenov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:27:28