Oracle数字前添加0的两种方式

有两种实现方式:

1.方式一

SELECT num, lpad(num, 5, '0') num_pad FROM DATA;

NUM NUM_P
--- -----
540 00540
60  00060
 2  00002

2. 方式二

SELECT num, to_char(num, '00000') num_pad FROM DATA;

NUM NUM_P
--- -----
540 00540
60  00060
 2  00002

为了避免用于减号的多余前导空间,可以在TO_CHAR格式化的时候使用FM

不使用FM

SELECT TO_CHAR(1, '00000') num_pad,
  LENGTH(TO_CHAR(1, '00000')) tot_len
FROM dual;

NUM_PAD    TOT_LEN
------- ----------
 00001           6

使用FM:

SELECT TO_CHAR(1, 'FM00000') num_pad,
  LENGTH(TO_CHAR(1, 'FM00000')) tot_len
FROM dual;

NUM_PAD    TOT_LEN
------- ----------
00001            5

参考:

  1. How to add leading zero in a number in Oracle SQL query?
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容