首页 > 解决方案 > 通过在 SQL 中使用前导零填充来格式化字符串

问题描述

我们在 SQL 表中有一个旧的评论列,其中包含这些评论 ACCTFEETOMANAGER、ACCTFEEFRMMANAGER、ACCTFNWRKSRMANAGER。

现在我必须将其转换为“ACCTFEE TO MANAGER”,但总字符数应为 24。

预期结果将是“000000ACCTFEE TO MANAGER”、“00000ACCTFEE FRM MANAGER”、“00ACCTF N WRK SR MANAGER”

如果有人有想法请回复。

标签: sqltsql

解决方案


最好提供一些示例数据和预期结果,因为看起来您只需将一个值换成另一个值即可获得三个特定值。

两种可能的方法,很多,将是

select t.comments, 
    Replace(
        Replace(
            Replace(comments,'ACCTFEETOMANAGER','000000ACCTFEE TO MANAGER'
            ),'ACCTFEEFRMMANAGER','00000ACCTFEE FRM MANAGER'
        ),'ACCTFNWRKSRMANAGER','00ACCTF N WRK SR MANAGER'
    ) Result
from t


with map as (
    select * from (
        values 
            ('ACCTFEETOMANAGER','000000ACCTFEE TO MANAGER'),
            ('ACCTFEEFRMMANAGER','00000ACCTFEE FRM MANAGER'),
            ('ACCTFNWRKSRMANAGER','00ACCTF N WRK SR MANAGER')
    )v(s,t)
)
select t.comments, m.t Result
from t
join map m on m.s=t.comments

推荐阅读