SQL演算子

演算子は、オペランドまたは引数と呼ばれる個々のデータ項目を操作します。演算子は特殊文字またはキーワードで表します。たとえば、乗算演算子は、アスタリスク(*)で表します。

Oracle Textがインストールされている場合は、Oracle Text問合せで、この製品に含まれるSCORE演算子を使用できます。また、CONTAINSCATSEARCHMATCHESなどの組込みText演算子を使用して条件を作成することもできます。Oracle Text要素の詳細は、『Oracle Textリファレンス』を参照してください。

単項演算子およびバイナリ演算子

一般に、演算子には次の2つのクラスがあります。

  • 単項: 単項演算子は1つのオペランドのみを操作します。単項演算子は通常、オペランドとともに次の形式で使用します。

    operator operand
    
  • バイナリ: 二項演算子は2つのオペランドを操作します。二項演算子は通常、オペランドとともに次の形式で使用します。

    operand1 operator operand2
    

特殊な形式を持つ他の演算子では3つ以上のオペランドを使用できます。オペランドにnullが指定された場合、結果は常にnullになります。この規則に従わない唯一の演算子は、連結(||)です。

演算子の優先順位

優先順位とは、同じ式の中の異なる演算子をOracle Databaseが評価する順序を意味します。複数の演算子を含む式を評価するとき、Oracleは優先順位の高い演算子を評価した後で、優先順位の低い演算子を評価します。優先順位の等しい演算子は、式の中で左から右に評価されます。

表4-1に、SQL演算子を優先順位の高い方から順に示します。同じ行にある演算子の優先順位は同じです。

表4-1 SQL演算子の優先順位

演算子 操作

+, - (単項演算子)、PRIORCONNECT_BY_ROOTCOLLATE

同一、否定、階層内の位置

*, /

乗算、除算

+, - (バイナリ演算子), ||

加算、減算、連結

SQL条件は、SQL演算子の後で評価されます。

条件の優先順位を参照してください。

優先順位の例

次の式では、乗算は加算よりも優先順位が高いため、2と3を掛けた結果に1が加算されます。

1+2*3 

式の中でカッコを使用すると、演算子の優先順位をオーバーライドできます。カッコ内の式がカッコ外の式よりも先に評価されます。

SQLでは、集合演算子(UNIONUNION ALLINTERSECTおよびMINUS)もサポートされます。集合演算子によって結合されるのは、問合せによって戻される行の集まりで、個々のデータ項目ではありません。集合演算子の優先順位はすべて同じです。

関連項目:

階層問合せでのみ使用するPRIOR演算子の詳細は、階層問合せ演算子および階層問合せを参照してください。