我一直在处理一个查询(在sql Server TSQL中),它用0填充数字的左边,所以输出总是5位数。
所以:
Select MuNumber From Mytable
获取数据11,011,2132,1111
Creates output like
00011
02134
01111
我尝试过Lpad功能但是0的数字可能会有所不同。
如果Munumber为1,我们需要0000,如果MyNumber为34,我们需要000
答案 0 :(得分:3)
假设MuNumber是VARCHAR,只需使用RIGHT
SELECT RIGHT('00000' + MuNumber, 5)
FROM Mytable
否则你需要先转换它
SELECT RIGHT('00000' + CONVERT(VARCHAR(5), MuNumber), 5)
FROM Mytable
一般来说,你可以使用这种模式:
DECLARE @num INT = 10;
SELECT RIGHT(REPLICATE('0', @num) + CONVERT(VARCHAR(5), MuNumber), @num)
FROM Mytable
答案 1 :(得分:2)
试试这个
select right('00000'+cast(col as varchar(5)),5) from table
答案 2 :(得分:1)
您可以使用用户定义的函数udfLeftSQLPadding,您可以在SQL Pad Leading Zeros找到源代码
在数据库上创建函数后,可以按如下方式使用它
copy source destin && echo SUCCESS || echo FAILURE
答案 3 :(得分:0)
另一种选择:
declare @n int = 6
select stuff(replicate('0', @n), 6-len(n), len(n), n)
from (values('123'), ('2493'), ('35')) as x(n)