PostgreSQL 文字列を数値に変換する

PostgreSQL 文字列を数値に変換する

PostgreSQLで、文字列を数値に変換する手順を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • PostgreSQL 14.0
  • pgadmin 6.0

文字列を数値に変換

文字列を数値に変換する場合は、「cast」を使用します。

cast( 文字列 as 数値の型 )

実際に、数値に変換してみます。

select cast('01' as integer)

実行結果

変換されていることが確認できます。

数値でないものを変換しようとするとエラーとなります。

select cast('ab' as numeric)

実行結果

短縮

「cast」は以下のように短縮して記述することも可能です。

select '0123'::integer

実行結果

TO_NUMBERを使用

TO_NUMBERを使用して、フォーマットを指定することで変換することも可能です。

SELECT
  TO_NUMBER('0123456'  , '9999999') 
 ,TO_NUMBER('12_34_56', '99_99_99')
 ,TO_NUMBER('12_34_56', '999999')
 ,TO_NUMBER('12_34_56', '999999999') 
 ,TO_NUMBER('12_34.56', '9999999.99')
 ,TO_NUMBER('-12_34.56', '9999999.99')

実行結果