SAK 図書館
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 編資料