2013-11-28 33 views
0

3位,我不知道這是在SQL Server中可能的,但我要問它;-)的Sql - 使所有物品的長度

我有一個名爲duty表中的列work

所以說Work.Duty包含不同的數字,像這樣(1, 2, 3, 20, 22, 305, 306, etc...

的佔空號應該總是3個位數,但他們是從平面文件導入,它們提供的原樣。

是否可以在語句中添加1或2個零,以便所有的責任編號有3位數(001,002,020,021,305,306)?

+0

是啊,這,是可能的。加1000並從右邊開始取3個第一個字符。 –

+3

您應該更好地存儲數字而不是字符串並將其格式化爲程序邏輯。 –

+0

我建議你閱讀:http://stackoverflow.com/questions/9520661/formatting-numbers-by-padding-with-leading-zeros-in-sql-server。 – Paul92

回答

1

假設yourColumn爲varchar(...),嘗試:

SELECT FORMAT(CAST(yourColumn AS INT),'000','en-US') from yourTable; 
1

試試這個:

SELECT RIGHT(1000 + Duty, 3) AS newDuty 
FROM Work 
相關問題