关于在SQLSERVER中实现补零的操作:
在开发过程中遇到过两种:
例如 : 要求得到9位的字符, 不满9位左补零.
第一种:
- select stuff('000000000',len('000000000')-len('123')+1,len('123'),'123')
第二种:
- select RIGHT(CAST(Power(10,9) + '123' as varchar),9)
结果都是: 000000123
但在变更时遇到了问题, 当字符要求是10位时, 第二种方法中的Power出现了溢出错误:
- select RIGHT(CAST(Power(10,9) + '123' as varchar),9)
- ----メッセージ 232、レベル 16、状態 3、行 1
値 = 10000000000.000000 は型 int では算術オーバーフロー エラーになります。
希望大家在使用时能注意到, 推荐第一种
本文介绍了在SQL Server中实现补零的两种方法,包括使用STUFF函数和RIGHT结合CAST与Power函数。当需要创建九位数且不满位数时左补零,这两种方法通常都能工作。然而,在字符长度提升到10位时,第二种方法可能导致Power函数的溢出错误。作者建议在实际应用中选择第一种方法以避免此类问题。
1万+

被折叠的 条评论
为什么被折叠?



