PostgreSQLでは、div()
関数は、最初の引数を2番目の引数で割った整数の商を返します。
構文
公式の構文は次のようになります:
div(y numeric, x numeric)
例
仕組みの例を次に示します。
SELECT div(12, 3);
結果:
4
この場合、12を3で割ると、結果は4になります。
その他の部門
同じ番号にさらにいくつかの部門があります。
SELECT
div(12, 1),
div(12, 2),
div(12, 3),
div(12, 4);
結果:
div | div | div | div -----+-----+-----+----- 12 | 6 | 4 | 3
フラクショナル結果
この関数は整数の商を返すため、小数は結果から省略されます。
SELECT div(12, 5);
結果:
2
12を5で割った値は実際には2.4ですが、この関数は小数部分を返さないため、2になります。
丸めも行われていないようです。たとえば、9を5で割ると1.8になりますが、div()
1を返します(2に切り上げられません)。
SELECT div(9, 5);
結果:
1
したがって、trunc()
を適用するように動作します。 (またはおそらくfloor()
)round()
ではなく、結果に またはceiling()
。
ゼロ除算
数値をゼロで割ろうとすると、エラーが発生します。
SELECT div(12, 0);
結果:
ERROR: division by zero
ただし、ゼロを別の数値で割ると、ゼロになります。
SELECT div(0, 12);
結果:
0