查询用 0 填充字段的左侧

S N*_*ash 3 sql t-sql sql-server

我一直在研究一个查询(在 sql Server TSQL 中),它用 0 填充数字的左侧,因此输出始终为 5 位。

所以:

Select MuNumber From Mytable
Run Code Online (Sandbox Code Playgroud)

对于数据 11,011,2132,1111

Creates output like 
00011
02134
01111
Run Code Online (Sandbox Code Playgroud)

我试过 Lpad 函数,但 0 的数量可以不同。

如果 Munumber 是 1 我们需要 0000 如果 MyNumber 是 34 我们需要 000

Luk*_*zda 5

假设 MuNumber 是 VARCHAR 只需使用 RIGHT

SELECT RIGHT('00000' + MuNumber, 5)
FROM Mytable
Run Code Online (Sandbox Code Playgroud)

否则你需要先转换它

SELECT RIGHT('00000' + CONVERT(VARCHAR(5), MuNumber), 5)
FROM Mytable
Run Code Online (Sandbox Code Playgroud)

一般来说,您可以使用这种模式:

DECLARE @num INT = 10;

SELECT RIGHT(REPLICATE('0', @num) + CONVERT(VARCHAR(5), MuNumber), @num)
FROM Mytable
Run Code Online (Sandbox Code Playgroud)