いつでも099
は、3桁の0が埋め込まれたことを示し、左側にスペースができます。
SELECT '>' || to_char(1, '099') || '<';
?column?
----------
> 001<
(1 row)
なぜto_char
左パディングはここですか?なぜ先行スペースがあるのですか?
あなたはここでより簡単なテストケースでそれを見ることができます
SELECT '>' || to_char(1, '0') || '<';
?column?
----------
> 1<
(1 row)
これは、@ Abelistoが言ったように、記号グリフ用にスペースが予約されているためです。
SELECT '>' || to_char(-1, '0') || '<';
?column?
----------
>-1<
(1 row)
the docs から、FM
を使用して符号を抑制できます。
Modifier Description Example
FM prefix fill mode (suppress leading zeroes and padding blanks) FM9999
だからあなたが欲しいのは
SELECT '>' || to_char(1, 'FM099') || '<';
FM0
でゼロを要求しても、ゼロは抑制されません。