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)?
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)?
假设yourColumn为varchar(...),尝试:
SELECT FORMAT(CAST(yourColumn AS INT),'000','en-US') from yourTable;
试试这个:
SELECT RIGHT(1000 + Duty, 3) AS newDuty
FROM Work
是啊,这,是可能的。加1000并从右边开始取3个第一个字符。 –
您应该更好地存储数字而不是字符串并将其格式化为程序逻辑。 –
我建议你阅读:http://stackoverflow.com/questions/9520661/formatting-numbers-by-padding-with-leading-zeros-in-sql-server。 – Paul92