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
假设 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)