2013-11-28 30 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 
相关问题