如何调整文档编号格式:将CKS开头编号转为FIN格式并截取后四位
统一文档编号为FIN-XXXX格式的SQL实现
你需要同时完成前缀替换和字符截取操作,仅用replace无法处理多余位数的截断,结合CASE条件判断与字符串截取函数就能解决问题:
UPDATE your_table_name SET Document_Number = CASE WHEN Document_Number LIKE 'CKS-%' THEN 'FIN-' + RIGHT(Document_Number, 4) ELSE Document_Number END;
操作说明:
- 用
CASE WHEN精准筛选需要修改的记录:仅处理以CKS-开头的编号 RIGHT(Document_Number, 4)直接提取编号的最后4位字符,忽略前面的前缀和多余位数- 将固定前缀
FIN-与截取的4位字符拼接,得到目标格式 - 原本就是
FIN-XXXX格式的记录保持原样,无需改动
你之前的replace语句只替换了前缀,没有截断后面的两位数字,会得到FIN-584202这类不符合预期的结果,上述语句同时解决了前缀替换和字符截取两个需求。
内容的提问来源于stack exchange,提问作者Enzo Austin
相关产品推荐
相关产品推荐

