查询用0填充字段的左侧

时间:2015-09-04 12:06:09

标签: sql sql-server tsql

我一直在处理一个查询(在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

4 个答案:

答案 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)