<PostgreSQL Conference 2014> 2014年12月5日(金) AP品川
今回は5トラック、全28セッション。PostgreSQLのすべてをこの1日で。詳しくは上記をクリック。
他のバージョンの文書9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

4.3. 算術関数と演算子

PostgreSQL の数多くの型に対する算術演算子が用意されています。

Table 4-2. 算術演算子

名前説明結果
+ 2 + 35
- 2 - 3-1
* 2 * 36
/ 商 (整数の割算では余りを切捨て)4 / 22
% 剰余 (余り)5 % 41
^ 冪乗2.0 ^ 3.08
|/ 平方根|/ 25.05
||/ 立方根||/ 27.03
! 階乗5 !120
!! 階乗 (前置演算子)!! 5120
@ 絶対値@ -5.05
& バイナリの AND91 & 1511
| >バイナリの OR32 | 335
# >バイナリの XOR17 # 520
~ >バイナリの NOT~1-2
<< バイナリの左シフト1 << 416
>> バイナリの右シフト8 >> 22

"二項"演算子も同様ビット列データ型 BIT および BIT VARYING に対して使用できます。

Table 4-3. ビット列二項演算子

結果
B'10001' & B'01101'00001
B'10001' | B'01101'11101
B'10001' # B'01101'11110
~ B'10001'01110
B'10001' << 301000
B'10001' >> 200100
&|、および # に対するビット列引数は同じ長さでなければなりません。ここで示されているようにビットシフトの場合元の列の長さは保持されます。

Table 4-4. 算術関数

関数返り値型説明結果
abs(x)(x と同じ)絶対値abs(-17.4)17.4
cbrt(dp)dp立方根cbrt(27.0)3
ceil(numeric)numeric引数より小さくない最小の整数ceil(-42.8)-42
degrees(dp)dp度に対応するラジアンdegrees(0.5)28.6478897565412
exp(dp)dp指数exp(1.0)2.71828182845905
floor(numeric)numeric引数より大きくない最大の整数floor(-42.8)-43
ln(dp)dp自然対数ln(2.0)0.693147180559945
log(dp)dp10 を底とした対数(常用対数)log(100.0)2
log(b numeric, x numeric)numeric底に対する対数 blog(2.0, 64.0)6.0000000000
mod(y, x)(引数の型と同じ)y/x の剰余mod(9,4)1
pi()dp"円周率(π)" 定数pi()3.14159265358979
pow(e dp, n dp)dpepow(9.0, 3.0)729
radians(dp)dpラジアンに対応する度radians(45.0)0.785398163397448
random()dp 0.0 〜 1.0 の値random() 
round(dp)dp四捨五入round(42.4)42
round(v numeric, s integer)numeric小数点位置 s で四捨五入round(42.4382, 2)42.44
setseed(new-seed)random() 呼出に引き続くシードの設定setseed(0.54823)  
sign(numeric)numeric引数の符号 (-1, 0, +1)sign(-8.4)-1
sqrt(dp)dp平方根sqrt(2.0)1.4142135623731
trunc(dp)dp切捨てtrunc(42.8)42
trunc(numeric, s integer)numeric小数点位置 s で切捨てtrunc(42.4382, 2)42.43

上の表で dp倍精度 を意味します。関数 explnlogpowround (引数 1 つ)、sqrt、および trunc (引数 1 つ)は double precision データ型の代わりとして numeric を使用することができます。特別に指定されない限り numeric データ型を返す関数は numeric データ型入力の引数を取ります。これらの関数の多くはホストシステムの C ライブラリの上層に実装されます。境界近くの場合に於ける正確さと振舞はしたがってホストシステムに依存して変化します。

Table 4-5. 三角関数

関数説明
acos(x)逆余弦関数 (arc cosine)
asin(x)逆正弦関数 (arc sine)
atan(x)逆正接関数 (arc tangent)
atan2(x, y)y/x の逆正接関数 (arc tangent)
cos(x)余弦関数 (cosine)
cot(x)余接関数 (cotangent)
sin(x)正弦関数 (sine)
tan(x)正接関数 (tangent)

すべての三角関数にはdouble precision (倍精度) データ型の引数と返り値があります。