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