TO_CHARを使ってゼロ埋めをするとスペースが入る

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を使用する。

関連記事
最新記事