SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

PostgreSQL 編12 - 数値関数、余り、四捨五入、切り捨て、切り上げ、数値書式

■絶対値

  ・abs() 関数は、絶対値を返す。

select abs(-123);

 abs
-----
 123

select key, abs(data1) from testm;

■余り

  ・mod() 関数は、余りを返す。

select mod(123, 10);

 mod
-----
   3

select key, mod(data1, 10.0) from testm;

■四捨五入

  ・round() 関数は、四捨五入結果を返す。

select round(10.345, 2);

 round
-------
 10.35

select key, round(data1, 2) from testm;

■切り捨て

  ・trunc() 関数は、切り捨て結果を返す。

select trunc(10.345, 2);

 trunc
-------
 10.34

select key, trunc(data1, 2) from testm;

■切り上げ

  ・trunc() に +9 すれば良いでしょう。
    この例では、小数第 1 位を切り上げたと同じ結果になります。

select trunc(10.345 + .9, 0);

 trunc
-------
    11

  未満切り上げの場合は、+99... など工夫します。
  次の例は、固定小数部 6 桁を小数部 2 桁未満で切り上げしています。

select trunc(10.345678 + .009999, 2);

 trunc
-------
 10.35

■以上で最小の整数

  ・ceil() 関数は、引数に対して、それ以上で、最小の整数値を返す。
    マイナス値に対しては、四捨五入のように動作しないので注意のこと。

select
  ceil(10.345), ceil(-10.345),
  trunc(10.345 + .9, 0), trunc(-10.345 + .9, 0) -- 小数第一位切り上げ
;

 ceil | ceil | trunc | trunc
------+------+-------+-------
   11 |  -10 |    11 |    -9

■以下で最大の整数

  ・floor() 関数は、引数に対して、それ以下で、最小の整数値を返す。
    マイナス値に対しては、四捨五入のように動作しないので注意のこと。

select
  floor(10.345), floor(-10.345),
  trunc(10.345, 0), trunc(-10.345, 0)
;

floor | floor | trunc | trunc
------+-------+-------+-------
   10 |   -11 |    10 |   -10

■スクエアルート

  ・sqrt() 関数は、平方根を返す。

select sqrt(2.0);

      sqrt
-----------------
 1.4142135623731

■べき乗

  ・pow() 関数は、べき乗を返す。
    この例では、2^8 が返る。

select pow(2.0, 8);

 pow
-----
 256

■数値から文字列へ変換 (数値フォーマット、書式変換)

  ・to_char() 関数は、数値を文字列型に変換します。
    単純な to_char(123456) は、明示的にする必要がないようです。
    「数値 || 数値」すると自動的に文字変換され結合されます。

select 123456 || 789012;

   ?column?
--------------
 123456789012

  ・三桁毎に数値にカンマ「,」を入れたい場合、次のようにします。

select to_char(123456, '999,999,999,999');

     to_char
------------------
          123,456

  ・小数点以下をフォーマットする場合は、次のようにします。

select to_char(123456, '999,999,999,999.99');

       to_char
---------------------
          123,456.00

  ・ゼロ埋め(0 埋め) フォーマットする場合は、次のようにします。

select to_char(123456, '000000000000');

    to_char
---------------
  000000123456

■文字列から数値へ変換

  ・to_number() 関数は、文字列を数値に変換します。

select to_number('00123456', '000000000000');

 to_number
-----------
    123456

select to_number('123,456', '999,999,999,999');

 to_number
-----------
    123456

select to_number('123' || '456', '999999999999');

 to_number
-----------
    123456

■型変換

  ・cast() 関数は、ANSI 規程の変換関数です。

select cast('123' || '456' as int8);

  int8
--------
 123456

■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK