PostgreSQLで数値をカンマ入りの文字列にフォーマットする方法

こんにちは、さるまりんです。

金額を表示するときに数値をカンマ入りの文字列に変換したい。
これをPostgreSQLでするにはto_char()関数を使います。

SELECT to_char([数値], [書式]) as [ラベル];

23980をカンマ入りの23,980にしたいです。

SELECT to_char(23980, 'FM999,999') as price;

9が並んでいるところは数字です。最初にFMをつけて先頭のスペースを消します。

実際にやってみます。

salu=> SELECT to_char(1234567890, 'FM999,999') as price;
  price  
---------
 23,980
(1 row)

もっと大きな数値で同じフォーマットでやってみるとこんな感じになります。

salu=> SELECT to_char(1234567890, 'FM999,999') as price;
  price  
---------
 ###,###
(1 row)

桁数がおかしいとなんか変なことになっています。

これではどうでしょう?

salu=> SELECT to_char(1234567890, 'FM999,999,999,999') as price;
     price     
---------------
 1,234,567,890
(1 row)

ちゃんと表示されました。桁が足りれば大丈夫なようです。

小数点以下も扱えます。

フォーマットの.00で小数点以下2桁表示を指定します。

salu=> SELECT to_char(75.23, 'FM999.00') as ratio;
 ratio 
-------
 75.23
(1 row)

正しく表示してくれていますね。

価格、ポイント、率。
コンピュータは計算機ですから、いろんな数値を扱いますね。
それらをうまく伝えられるようにするにはどうするか?
プログラムが役に立つといいなと思っています。

読んでくださってありがとうございました。

それではまた!