ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PostgreSQLのTO_CHAR関数で起きた不思議な現象

自分には、なぜそうなるのかわからないです。

f:id:AJYA:20130415212055j:plain

photo credit: lu_lu via photopin cc

 

数値から文字列に変換したときに起きた現象 

お客さんから頼まれて、データ抽出のSQLを書きました。

後加工はできるだけしたくなかったので、数値の10万の位でデータを分割する方法を考えました。

 

考えた結果、数値から文字列に変換し、文字列を10万の位で分割して、分割できるようにすればいいと思いつきました。

思い付きを実現できるSQLは、

TO_CHAR( member_id, '999999' )

と考えて試したら、なぜか文字列の先頭にスペースが入って7文字になっていました。

SUBSTRING( TO_CHAR( member_id, '999999' ) FROM 1 FOR 1)

とすると、スペースになってしまいます。

 

原因を推測

SQLの書き方が間違っていれば、エラーになるはずなので、文法は間違っていなさそうです。

数値は必ず6桁と決まっているので、上記の書き方で間違いは無いはずです。

 

原因 がわからず状態でも、データ抽出はできるので、対外的には問題ありませんが、自分としては、納得できない状態です。