我的 sql 表中有一个列。我想知道当我的列值小于 10 时,如何在列中添加前导零?例如:
number result
1 -> 01
2 -> 02
3 -> 03
4 -> 04
10 -> 10
原文由 RedRocket 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的 sql 表中有一个列。我想知道当我的列值小于 10 时,如何在列中添加前导零?例如:
number result
1 -> 01
2 -> 02
3 -> 03
4 -> 04
10 -> 10
原文由 RedRocket 发布,翻译遵循 CC BY-SA 4.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 许可协议
1 回答2.4k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
419 阅读
版本 >= 2012