PostgreSQL

PostgreSQL カンマ付き文字列金額データを数値変換

投稿日:2019年11月11日 更新日:

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

以上。

-PostgreSQL

執筆者:


comment

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

関連記事

PostgreSQL 入出金テーブルから月締め集計ビュー作成

入出金情報が入ったテーブルから月締めの集計ビューを作る方法を試します。 Contents1 元データ2 一次処理3 二次処理 元データ 以下のデータを対象にします。 select * from acc …

【PostgreSQL】縦持ちデータを横持ち変換し前年同月との比較をする

Contents1 目的2 元データ3 横持にするSQL4 結果5 まとめ 目的 システムから取り出したデータは正規化されており縦持ちのデータ構造が多いですが、口座の残高やカードの支払い金額など、前年 …

VSCodeからPostgreSQLへ接続してSQL発行まで

Contents1 目的2 環境3 Step1 : プラグインのインストール4 Step2 : データベースとの接続5 Step3 : SQLの発行6 補足 目的 VSCodeが優秀なので、VSCod …

PostgreSQL 累積値を計算するSQL

Contents1 目的2 Step1 : テーブル用意3 Step2 : 累積値を計算するSQL 目的 ある値の累積値をSQLで計算する。 Step1 : テーブル用意 以下のようなテーブルを用意し …

【PostgreSQL】グループ内での順位付けを行うSQL

Contents1 目的2 テストデータ3 順位付けするSQL4 特定の順位だけを抜き出すSQL 目的 一つのテーブルに複数のグループがごちゃ混ぜに入っている場合に、グループごとに順位付けを行うSQL …

言語切り替え

カテゴリー