oracle数字格式上不需要的前导空格
时间:2020-03-06 14:57:43 来源:igfitidea点击:
我需要在数字前加上前导零(总共8位数字)以进行显示。我正在使用oracle。
select to_char(1011,'00000000') OPE_NO from dual; select length(to_char(1011,'00000000')) OPE_NO from dual;
我得到的不是" 00001011",而是" 00001011"。
为什么我会得到额外的前导空白?完成此操作的正确数字格式字符串是什么?
P.S.我意识到我可以只使用trim()
,但是我想更好地理解数字格式。
@Eddie:我已经阅读了文档。但是我仍然不明白如何摆脱领先的空白。
@David:那是否意味着只能使用trim()
吗?
解决方案
从EddieAwad提到的同一文档中:
Negative return values automatically contain a leading negative sign and positive values automatically contain a leading space unless the format model contains the MI, S, or PR format element.
编辑:正确的方法是使用FM修改器,正如史蒂夫·博斯曼(Steve Bosman)回答的那样。阅读有关格式化模型修饰符的部分,以获取更多信息。
使用FM(填充模式),例如
从双重选择to_char(1011,'FM00000000')OPE_NO;