OceanBaseデータベースは、一般的な算術演算子をサポートしています。
算術演算子の概要
OceanBaseデータベースの現在のバージョンでサポートされている算術演算子の詳細は、次の表のとおりです。
演算子 |
操作数タイプ |
意味 |
|---|---|---|
+ |
一元/二元 | 一元は正の数を表し、二元は加算を表します。 |
- |
一元/二元 | 一元は負の数を表し、二元は減算を表します。 |
* |
二元 | 乗算。 |
/ |
二元 | 通常の除算。 |
DIV |
二元 | 整数除算。商を返します。 |
MOD 或 % |
二元 | 整数除算。余りを返します。 N % M または N MOD M は、N を M で割ったときの余りを返します。 |
説明
演算規則
整数除算の演算規則について、以下に説明します。
商は正負にかかわらず、常に0に向かって切り捨てられます。
余りの正負は被除数と同じです。
例:
obclient> SELECT (-7) DIV (3.6), (-7) MOD (3.6);
+----------------+----------------+
| (-7) DIV (3.6) | (-7) MOD (3.6) |
+----------------+----------------+
| -1 | -3.4 |
+----------------+----------------+
1 row in set
obclient> SELECT (-7) DIV (-3.4), (-7) % (-3.4);
+-----------------+---------------+
| (-7) DIV (-3.4) | (-7) % (-3.4) |
+-----------------+---------------+
| 2 | -0.2 |
+-----------------+---------------+
1 row in set
演算結果
算術演算の結果は、以下の規則に基づいて決定されます。
-、+、*の場合、両方の操作数が整数であれば、結果はBIGINT(64ビット)の精度で計算されます。両方の操作数が整数であり、そのうち一方が符号なしである場合、結果は符号なし整数となります。減算では、
NOUnsigned_SUBTRACTIONSQLモードが有効な場合、どちらか一方の操作数が符号なしであっても、結果は符号付きとなります。+、-、/、*、%の操作数が実数または文字列値の場合、結果の精度は最も高い精度を持つ操作数の精度となります。/を使用した除算では、2つの演算子がいずれも厳密値の場合、結果の小数点以下の桁数は、最初の演算子の小数点以下の桁数にシステム変数div_precision_incrementの値(デフォルトは4)を加算したものとなります。例えば、式 5.15/0.013 の結果は小数点以下6桁となります (396.153846)。