如何在SQL中生成无符号占位的右对齐n位数字符串
解决方案
有更简洁的实现方式,不需要调用substr,通用方案兼容绝大多数主流SQL数据库:
最优实现
直接使用lpad函数即可,它会自动将整数转换为字符串,再在左侧填充空格到固定3位长度,天然实现右对齐效果,完全没有多余的符号位空格,和你原有写法的输出结果完全一致:
select lpad(theNumber, 3) as number3digits from theTable;
效果验证
由于你的输入取值是1到999的正整数,不存在负号场景,最终输出和需求完全匹配:
- 输入值为1时,输出
1 - 输入值为12时,输出
12 - 输入值为123时,输出
123
内容的提问来源于stack exchange,提问作者René Nyffenegger
相关产品推荐
相关产品推荐

