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