将前导零添加到小于 7 位的整数并忽略任何 7+

Don*_*Don 3 sql-server sql-server-2012 number-formatting

我有一个查询,它几乎做我想做的。它正在添加前导零,但是当涉及到 7+ 长的东西时,它会将所有东西都变成 7 位数字。

Select RIGHT(rtrim('0000000' + cast(column as nvarchar)), 7) from table
Run Code Online (Sandbox Code Playgroud)

我只是觉得我的大脑不工作,我无法弄清楚这一点。谁能帮我这个?

例子:

324 -> 0000324
2232 -> 0002232
3324124 -> 3324124

我所要做的就是为小于 7 的任何内容添加 0。

列是nvarchar

Nic*_*Nic 6

丑陋(并且不会表现得那么好),但是

SELECT 
CASE WHEN len(Column) > 7 THEN CAST(Column AS nvarchar(20))
ELSE RIGHT(rtrim('0000000' + CAST(column as nvarchar(20)), 7) END
FROM table
Run Code Online (Sandbox Code Playgroud)