読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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;