在特定字符后添加前导零

时间:2015-03-06 15:01:52

标签: sql sql-server-2008 tsql

我遇到以下问题(示例字符串):

10162/0 应该看起来像 010162/0000
47000/685 应该看起来像 047000/0685
9055/2 应该看起来像 009055/0002

所以直到'/',如果没有正好6位数,我需要带有前导零的6位数字。在'/'之后,如果没有4位数,我需要正数为4位且前导零。

我尝试过:

SELECT RIGHT('000000/0000' + [column_name], 11) ...

但当然,在'/'之后的第二部分是不起作用的原因:)

我希望有人能帮助我。 提前谢谢!

1 个答案:

答案 0 :(得分:2)

你可以通过一堆字符串操作来做到这一点。像这样:

select right(replicate('0', 6) + left(val, charindex('/', val)), 7) +
       right(replicate('0', 4) + right(val, charindex('/', reverse(val)) - 1), 4)

不幸的是,SQL Fiddle今天早上没有回来,所以我无法完全测试这个。

编辑:修复了缺失的括号

相关问题