Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

postgresで数値を文字列化する

postgresで数値を整形するには空文字列とくっつける方法やto_char関数が使えます。

実際のところ

文字列とくっつける

空文字列とくっつける方法もあります。
単純に文字化したいだけなら、これが楽でしょう。

SELECT ('' || 12) AS i;
 i  
----
 12
(1 row)

というわけで、以前の記事をちゃんと数値を出すと成ると次のようになります。

SELECT a,
       CASE WHEN a % 15 = 0  THEN 'FizzBuzz' when a % 3 = 0 then 'Fizzz'
            WHEN a % 5 = 0  THEN 'Buzz'
            ELSE '' || a
       END

結果

 a  |   case   
----+----------
  1 | 1
  2 | 2
  3 | Fizzz
  4 | 4
  5 | Buzz
  6 | Fizzz
  7 | 7
  8 | 8
  9 | Fizzz
 10 | Buzz
 11 | 11
 12 | Fizzz
 13 | 13
 14 | 14
 15 | FizzBuzz
(15 rows)

to_char

他にはto_charがあります。
こっちはフォーマットを色々いじることが出来るので色々遊び甲斐がありそう。

SELECT a,
       CASE WHEN a % 15 = 0  THEN 'FizzBuzz' when a % 3 = 0 then 'Fizzz'
            WHEN a % 5 = 0  THEN 'Buzz'
            ELSE to_char(a,'FM99')
       END
FROM generate_series(1,15) as a;