これまた、初めて知ったョ・・・。
オラクルで数値を文字に変換するときによく
to_char()
って使いますよね?
これで何気なく、ZEROパディングでフォーマット。
select to_char(1, '000') from dual;
って、初めてやったのですが・・・
よく見ると、結果が
[]001
で、[]は空白スペースが入ってるんですね!
これじゃあ、パディングした意味ないじゃんと思わず
trim(to_char(1, '000'))
とやっちゃったんだけど、
こんな二度手間何度もしないといけないなんて、
何かしっくりこないなぁ。
と思いオラクルの公式で検索したら、やっぱりありましたね・・・
[]のところには実はサイン記号が入ってて表示させるように
しないと空白が入っちゃうてことなのかな?と理解しました。
んでもってその空白を消す方法はと
to_char(1, 'FM000')
ってやればいんですね。すばらすい。
さらに、
select to_char(1, '000'),
to_char(1, 'S000'),
to_char(1, 'FM000')
from dual
で比較すれば一目瞭然ですね^^;
ちなみに、オラクルの公式でも'FM'が
「あまり知られてないのか、trim(to_char(1, '000'))って
書いてる人を良く見かける」と何気なくかいてましたorz
でも、これでまた一つ賢くなりました。(`・ω・´)
2009/1/8 記事訂正
ZEROサプレス → ZEROパディング
2 コメント:
ZERO paddingじゃっちゃ
匿名さん
ご指摘ありがとうございました。
早速記事を訂正しました。
コメントを投稿