PostgreSQL カンマ付き文字列金額データを数値変換
BIツールなどで金額データを扱いたい場合に、金額データがカンマ区切りの文字列データの場合があります。
例:306,327
このような文字列データを数値に変換します。
SQL
以下のようなデータを持つテーブル(balance_table)があるとします。
01 02 03 04 05 | id | balance ------------- 1 | 10,432 2 | 4,665,348 ... |
次のようなSQLで数値化した結果を得られます。
01 02 03 04 05 06 07 08 09 10 11 12 13 | select ,id ,to_number(balance, '999,999,999' ) as balance from balance_table; --結果 id | balance ------------- 1 | 10432 2 | 4665348 ... |
balanceフィールドの中にNULLが入っているとエラーが出ます。
01 02 03 04 05 06 | id | balance ------------- 1 | 10,432 2 | 4,665,348 3 | NULL ... |
NULLが入っている可能性がある場合は次のような構文が有効です。
01 02 03 04 05 06 07 08 09 10 11 12 13 | select ,id ,to_number( coalesce (balance,0), '999,999,999' ) as balance from balance_table; --結果 id | balance ------------- 1 | 10432 2 | 4665348 3 | 0 ... |
coalesceを使って0で置換したうえで、to_numberしました。
以上。