OracleでTo_charすると空白が入らないようにする
Oracleで数値をゼロ埋めし、その結果を結合しようとした際に、ゼロ埋めの先頭に空白が挿入されており、目的のデータになりませんでした。
その対処方法についてまとめました。
空白が入る
with SubQuery as ( select 'abc' as a , 1 as b from dual ) select a || to_char(b,'000\) as c from SubQuery
なぜか
to_charの数値処理の場合負の記号処理のために先頭に空白が入ります。
そのため今回のような空白が挿入され不具合に繋がっています。
どうするか
フォーマット部にFMをを追加でつけるだけ
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
以上です。