PostgreSQLで単純採番のid列を1→G0001のように変換して取り出したかったときに躓いたためメモ。
先頭のFMは前後に意図しない空白が入らないようにするテンプレート指定である。
実行SQL
SELECT to_char(id, 'FMG0000' ) FROM table
結果
0001
取り出せた値は0001でGが付与されていなかった。調べてみるとGもまたテンプレートパターンの指定文字列であるためらしい。
テンプレートパターンをテンプレートとして認識させないようにするにはダブルクォートで括れば良いとのこと。
『これからはじめるPostgreSQL入門』p.135より
実行SQL
select to_char(id, 'FM"G"0000' ) from table
結果
G0001
ググり方が下手なのか公式ドキュメントを彷徨い、30分ほど詰まってましたが手持ちの書籍に答えが載ってて助かりました。期待通りの結果を得られて満足です。