演算子の優先順位は、OceanBaseデータベースにおける同一式内での計算順序に影響を与えます。
複数の演算子で構成される式を計算する際、OceanBaseデータベースはまず優先順位が高い演算子から計算を行い、次に優先順位が低い演算子を計算します。演算子の優先順位が等しい場合、式内では左から右へと等しい演算子を評価します。
演算子の優先順位は、最も高いものから最も低いものまで以下の表の通りです。同一行上の演算子はすべて同じ優先順位を持ちます。
| 演算子 | 演算方法 |
|---|---|
| +、-(単項演算子として)、PRIOR、CONNECT_BY_ROOT | プラス記号、マイナス記号、階層構造における位置。 |
| *、/ | 乗法、除法。 |
| +、-(二項演算子として)、|| | 加算、減算、連結。 |
| 条件式はデータベースが演算子の評価を終えた後に評価されます | 詳細については、ドキュメントSQL条件の概要を参照してください。 |
また、式内で括弧を使用して演算子の優先順位を制限することもできます。OceanBaseデータベースは、まず括弧内の式を評価し、その後括弧外の式を評価します。
SQLでは集合演算子(UNION、UNION ALL、INTERSECT、MINUS)もサポートされており、集合演算子はクエリが返す個々のデータ項目ではなく、行セットを結合します。すべての集合演算子は同じ優先順位を持ちます。
以下の例では、乗算の優先順位が加算よりも高いため、データベースはまず2に3を掛け、その結果を1に加算します。
1+2*3