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
。
丑陋(并且不会表现得那么好),但是
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)