社内SEの話

日々起きたことの記録用

【Oracle】to_charすると空白が入らないようにする

↓プログラミングで副業を考えたらこちら↓

OracleでTo_charすると空白が入らないようにする

Oracleで数値をゼロ埋めし、その結果を結合しようとした際に、ゼロ埋めの先頭に空白が挿入されており、目的のデータになりませんでした。

その対処方法についてまとめました。

空白が入る

to_char

with SubQuery as (
select 'abc' as a , 1 as b from dual
)
select
a || to_char(b,'000\) as c
from SubQuery

to_char

なぜか

to_charの数値処理の場合負の記号処理のために先頭に空白が入ります。

そのため今回のような空白が挿入され不具合に繋がっています。

どうするか

フォーマット部にFMをを追加でつけるだけ

docs.oracle.com

to_char

with SubQuery as (
select 'abc' as a , 1 as b from dual
)
select
a || to_char(b,'000') as c
,a || to_char(b,'FM000') as d
from SubQuery

to_char

docs.oracle.com

以上です。