「PostgreSQL 13」to_number()を使って文字列を数値に変換する

環境
PostgreSQL 13.2
Windows 10 Home 64bit

構文
TO_NUMBER(string, format)
フォーマット
9 指定された桁数での値
0 前にゼロが付いた値
.(ピリオド) 小数点
, (コンマ) 千単位で区切る符号
PR 負の値の角括弧表示
S 符号付き値(ロケールを使用)
L 通貨記号(ロケールを使用)
D 小数点(ロケールを使用)

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT
TO_NUMBER('0778899' , '9999999')
,TO_NUMBER('77_88_99', '99_99_99')
,TO_NUMBER('77_88_99', '999999')
,TO_NUMBER('77_88_99', '999999999')
,TO_NUMBER('77_88.99', '9999999.99')
,TO_NUMBER('-77_88.99', '9999999.99')
SELECT TO_NUMBER('0778899' , '9999999') ,TO_NUMBER('77_88_99', '99_99_99') ,TO_NUMBER('77_88_99', '999999') ,TO_NUMBER('77_88_99', '999999999') ,TO_NUMBER('77_88.99', '9999999.99') ,TO_NUMBER('-77_88.99', '9999999.99')
SELECT
  TO_NUMBER('0778899'  , '9999999') 
 ,TO_NUMBER('77_88_99', '99_99_99')
 ,TO_NUMBER('77_88_99', '999999')
 ,TO_NUMBER('77_88_99', '999999999') 
 ,TO_NUMBER('77_88.99', '9999999.99')
 ,TO_NUMBER('-77_88.99', '9999999.99')

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
to_number | to_number | to_number | to_number | to_number | to_number
-----------+-----------+-----------+-----------+-----------+-----------
778899 | 778899 | 7788 | 778899 | 7788.99 | -7788.99
to_number | to_number | to_number | to_number | to_number | to_number -----------+-----------+-----------+-----------+-----------+----------- 778899 | 778899 | 7788 | 778899 | 7788.99 | -7788.99
 to_number | to_number | to_number | to_number | to_number | to_number
-----------+-----------+-----------+-----------+-----------+-----------
    778899 |    778899 |      7788 |    778899 |   7788.99 |  -7788.99

 

PostgreSQL

Posted by arkgame