我一直在研究一個查詢(在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快速回答。 –