プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

SQL演算子

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

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

Oracle Expression Filterを使用している場合、この製品に含まれる組込みEVALUATE演算子を使用して条件を作成できます。詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』を参照してください。


注意:

NLS_COMPNLS_SORTの設定を組み合せた値によって、文字をソートおよび比較するルールが決まります。ご使用のデータベースのNLS_COMPLINGUISTICが設定されている場合、この章のエンティティはすべてNLS_SORTパラメータによって指定されるルールに従って解釈されます。NLS_COMPLINGUISTICに設定されていない場合、ファンクションはNLS_SORTの設定に関係なく解釈されます。NLS_SORTは、明示的に設定できます。明示的に設定されていない場合は、NLS_LANGUAGEから導出されます。これらの設定の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

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

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

  • 単項: 単項演算子は、1つのみのオペランドについて操作します。単項演算子の書式は次のとおりです。

    operator operand
    
  • バイナリ: バイナリ演算子は、2つのオペランドについて操作します。バイナリ演算子の書式は次のとおりです。

    operand1 operator operand2
    

この他、特別な書式を持ち、3つ以上のオペランドについて操作可能な演算子もあります。演算子のオペランドにNULLが指定された場合、結果は常にNULLになります。この規則に従わない唯一の演算子が連結演算子(||)です。

演算子の優先順位

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

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

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

演算子 操作

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

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

*, /

乗算、除算

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

加算、減算、連結

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

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


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

1+2*3 

式の中でカッコを使用して演算子の優先順位を上書きできます。Oracleは、カッコの内側の式を評価した後で、外側の式を評価します。

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


関連項目:

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