SQL Server如何删除字符串中间固定第三位置的字符
SQL Server 删除字符串固定位置字符实现方案
核心实现函数
使用SQL Server内置的STUFF函数即可满足需求,该函数专门用于对字符串指定位置、指定长度的内容进行替换/删除操作,语法如下:STUFF(待处理字符串, 起始删除位置, 删除字符长度, 替换为的内容)
实现逻辑
你需要删除第3位的字符,因此直接将起始位置设为3,删除长度设为1,替换内容设为空字符串即可。
代码示例
单值测试
SELECT STUFF('CAAxxB', 3, 1, '') -- 输出结果:CAxxB
批量测试匹配你的示例
SELECT STUFF('CAAxxB', 3, 1, '') AS res1, STUFF('CBBxx', 3, 1, '') AS res2, STUFF('CBAxxB', 3, 1, '') AS res3, STUFF('CBBxxB', 3, 1, '') AS res4
输出结果完全匹配你的预期:
- res1:CAxxB
- res2:CBxx
- res3:CBxxB
- res4:CBxxB
表字段处理用法
如果要处理表中的字段,示例如下:
SELECT STUFF(你的字段名, 3, 1, '') AS 处理后的字段 FROM 你的表名
兼容场景补充
如果存在部分字符串长度不足3的情况,可增加长度判断避免报错:
SELECT CASE WHEN LEN(你的字段名) >=3 THEN STUFF(你的字段名,3,1,'') ELSE 你的字段名 END AS 处理后的字段 FROM 你的表名
内容的提问来源于stack exchange,提问作者BradM
相关产品推荐
相关产品推荐

