比較条件
比較条件はある式を別の式と比較します。比較の結果は、TRUE、FALSEまたはUNKNOWNになります。 
                  
ラージ・オブジェクト(LOB)は、比較条件ではサポートされていません。ただし、CLOBデータの比較では、PL/SQLプログラムを使用できます。
                  
数式を比較する場合、Oracleは数値の優先順位を使用して、その条件がNUMBER、BINARY_FLOATまたはBINARY_DOUBLEのうちどの値を比較するかを判断します。数値の優先順位の詳細は、数値の優先順位を参照してください。
                  
文字式を比較する場合、Oracleはデータ型の比較規則で説明されている規則を使用します。この規則では、比較の前の式の文字セットの位置、バイナリ比較または言語比較(照合)の使用、空白埋め比較セマンティクスの使用および照合キーに課せられた制限による制約(エラーORA-12742: unable to create the collation keyのレポートなど)が定義されます。
                  
非スカラー型の2つのオブジェクトが比較可能なのは、これらが同じ名前付きの型であり、要素が1対1で対応している場合です。また、ユーザー定義オブジェクト型のネストした表では、要素が比較可能な場合も、等式やIN条件で使用するMAPメソッドが定義されている必要があります。
                  
関連項目:
MAPメソッドを使用したオブジェクトの比較の詳細は、『Oracle Databaseオブジェクト・リレーショナル開発者ガイド』を参照してください。
                     
表6-2に、比較条件を示します。
表6-2 比較条件
| 条件の種類 | 目的 | 例 | 
|---|---|---|
| 
                               
  | 
                           
                               等価性をテストします。  | 
                           SELECT * FROM employees WHERE salary = 2500 ORDER BY employee_id;  | 
                        
| 
                               
 
 
  | 
                           
                               非等価性をテストします。  | 
                           SELECT * FROM employees WHERE salary != 2500 ORDER BY employee_id;  | 
                        
| 
                               
 
  | 
                           
                               大小のテスト。  | 
                           SELECT * FROM employees WHERE salary > 2500 ORDER BY employee_id; SELECT * FROM employees WHERE salary < 2500 ORDER BY employee_id;  | 
                        
| 
                               
 
  | 
                           
                               以上または以下のテスト。  | 
                           SELECT * FROM employees WHERE salary >= 2500 ORDER BY employee_id; SELECT * FROM employees WHERE salary <= 2500 ORDER BY employee_id;  | 
                        
| 
                               
 
  | 
                           
                               "op"は=、!=、>、<、<=、または>=のいずれかである必要があります。 
 これらの比較のいずれかがTRUEを返す場合、 これらの比較がすべて 
  | 
                           SELECT * FROM employees WHERE salary = ANY (SELECT salary FROM employees WHERE department_id = 30) ORDER BY employee_id;  | 
                        
| 
                               
  | 
                           
                               "op"は=、!=、>、<、<=、または>=のいずれかである必要があります。 
 これらの比較のいずれかが これらの比較がすべて  | 
                           SELECT * FROM employees WHERE salary >= ALL (1400, 3000) ORDER BY employee_id;  | 
                        
単純比較条件
単純比較条件は、式または副問合せの結果の比較方法を指定します。
simple_comparison_condition::=
expression_list::=
この条件の下の方の書式(演算子の左辺に1つの式を指定する書式)を使用する場合は、expression_listの上または下の方の書式を使用できます。この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_listの下の方の書式を使用する必要があります。どちらの場合も、expression_listの式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せを指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。
                     
グループ比較条件
グループ比較条件は、リストまたは副問合せ内の任意またはすべてのメンバーの比較方法を指定します。
group_comparison_condition::=
expression_list::=
この条件の上の方の書式(演算子の左辺に1つの式を指定する書式)を使用する場合は、expression_listの上の方の書式を使用する必要があります。この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_listの下の方の書式を使用し、各expression_list内の式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せを指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。
                     
関連項目:
- 
                              
比較条件の照合決定ルールは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。
 


