我一直在研究一个查询(在SQL Server TSQL中),用0填充数字的左边,所以输出总是5位数。查询填充0字段的左边
所以:
Select MuNumber From Mytable
数据11,011,2132,1111
Creates output like
00011
02134
01111
我试图LPAD功能,但0的NUMER可以是不同的。
如果Munumber是1,我们需要0000如果mynumber的是34,我们需要000
我一直在研究一个查询(在SQL Server TSQL中),用0填充数字的左边,所以输出总是5位数。查询填充0字段的左边
所以:
Select MuNumber From Mytable
数据11,011,2132,1111
Creates output like
00011
02134
01111
我试图LPAD功能,但0的NUMER可以是不同的。
如果Munumber是1,我们需要0000如果mynumber的是34,我们需要000
假设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
试试这个
select right('00000'+cast(col as varchar(5)),5) from table
您可以创建数据库的功能后,使用用户定义的函数udfLeftSQLPadding在那里你可以SQL Pad Leading Zeros
找到源代码,则可以按如下
使用select
dbo.udfLeftSQLPadding(MuNumber,5,'0')
from dbo.Mytable
另一种选择:
declare @n int = 6
select stuff(replicate('0', @n), 6-len(n), len(n), n)
from (values('123'), ('2493'), ('35')) as x(n)
非常好!我完全忘记了正确的功能是TSQ,让我来测试它。 –
感谢您为+1快速回答。 –