为什么 0 是 to_char(0,'B9999') 的例外?
Why is 0 an exception for to_char(0,'B9999')?
是什么让数字 0 成为 Oracle to_char(number,'B9999') 掩码的例外?
在此查询中,0 根本不打印。
如何用空格填充包括 0 在内的所有数字?
lpad()
是唯一的选择吗?
select to_char(0,'B09999') as num_fmt from dual union all
select to_char(0,'B9999') as num_fmt from dual union all
select to_char(300,'B9999') as num_fmt from dual union all
select to_char(-300,'B9999') as num_fmt from dual ;
您可以使用 to_char(yourVal,'999')
格式模型为三位数的整数左填充空白(前导零为空白,零值除外)。
如果您需要更多,请将 9 的数量增加到整数值中的位数:
select to_char(0,'999') as num_fmt from dual union all
select to_char('00','999') from dual union all
select to_char('016','999') from dual union all
select to_char(17,'999') from dual union all
select to_char(314,'999') from dual union all
select to_char(-314,'999') from dual;
NUM_FMT
-------
0
0
16
17
314
-314
是什么让数字 0 成为 Oracle to_char(number,'B9999') 掩码的例外? 在此查询中,0 根本不打印。
如何用空格填充包括 0 在内的所有数字?
lpad()
是唯一的选择吗?
select to_char(0,'B09999') as num_fmt from dual union all
select to_char(0,'B9999') as num_fmt from dual union all
select to_char(300,'B9999') as num_fmt from dual union all
select to_char(-300,'B9999') as num_fmt from dual ;
您可以使用 to_char(yourVal,'999')
格式模型为三位数的整数左填充空白(前导零为空白,零值除外)。
如果您需要更多,请将 9 的数量增加到整数值中的位数:
select to_char(0,'999') as num_fmt from dual union all
select to_char('00','999') from dual union all
select to_char('016','999') from dual union all
select to_char(17,'999') from dual union all
select to_char(314,'999') from dual union all
select to_char(-314,'999') from dual;
NUM_FMT
-------
0
0
16
17
314
-314