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しました。

以上。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です