当数字小于10时如何添加前导零?

新手上路,请多包涵

我的 sql 表中有一个列。我想知道当我的列值小于 10 时,如何在列中添加前导零?例如:

 number   result
1     ->    01
2     ->    02
3     ->    03
4     ->    04
10    ->    10

原文由 RedRocket 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 737
2 个回答
format(number,'00')

版本 >= 2012

原文由 CrimsonKing 发布,翻译遵循 CC BY-SA 3.0 许可协议

还有另一种解决方案:

 SELECT REPLACE(STR(@YourNumber,2),' ','0');

我更喜欢这个,因为如果数字大于您指定的位数,其他方法可能会导致随机结果:

但它不会处理负数……

 DECLARE @YourNumber INT=123;
SELECT REPLACE(STR(@YourNumber,5),' ', '0')   --pad to five digits
      ,REPLACE(STR(@YourNumber,3),' ', '0')   --pad to 3 digits
      ,REPLACE(STR(@YourNumber,2),' ', '0');  --123 is wider than 2 digits...

结果

00123
123
**

原文由 Shnugo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进