OracleやPostgreSQLでto_char()を使用して0埋め(ゼロパディング)をするとスペースが入る時の対応方法です。
0埋め
数字を0埋め(ゼロパディング)するときはto_char()を使用すると便利です。
ですが、そのままだと先頭にスペースが入ります。
プログラム側でtrim()をしてもいいですが、FMを使用するとSQLでスペースを取り除けます。
スペースが入る
4桁で先頭0埋めする場合。
to_char()で0埋めするとスペースが入る。
Dと0の間にスペースが入っている。
postgres=# select 'CD'||to_char(100, '0000') AS code;
code
---------
CD 0100
(1 row)
スペースを除く
to_char()のフォーマット時にFMを付ける。
Dと0の間のスペースがなくなる。
postgres=# select 'CD'||to_char(100, 'FM0000') AS code;
code
--------
CD0100
(1 row)
まとめ
to_char()で0埋め(ゼロパディング)する際にスペースが入る時はFMを使用する。