OceanBaseデータベースは、一般的な算術演算子をサポートしています。
算術演算子の概要
OceanBaseデータベースの現在のバージョンでサポートされている算術演算子の詳細は、次の表のとおりです。
演算子 |
操作数タイプ |
意味 |
|---|---|---|
+ |
1元/2元 | 1元は正の数を表し、2元は加算を表します。 |
- |
1元/2元 | 1元は負の数を表し、2元は減算を表します。 |
* |
2元 | 乗算。 |
/ |
2元 | 通常の除算。 |
DIV |
2元 | 整数除算で、商を返します。 |
MOD 或 % |
2元 | 整数除算で、余りを返します。 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) となります。